C語言編程新思路知到章節(jié)答案智慧樹2023年山東理工大學(xué)_第1頁
C語言編程新思路知到章節(jié)答案智慧樹2023年山東理工大學(xué)_第2頁
C語言編程新思路知到章節(jié)答案智慧樹2023年山東理工大學(xué)_第3頁
C語言編程新思路知到章節(jié)答案智慧樹2023年山東理工大學(xué)_第4頁
C語言編程新思路知到章節(jié)答案智慧樹2023年山東理工大學(xué)_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言編程新思路知到章節(jié)測試答案智慧樹2023年最新山東理工大學(xué)第一章測試

關(guān)于一個(gè)C語言程序執(zhí)行的起點(diǎn)和終點(diǎn),以下選項(xiàng)正確的是

()。

參考答案:

main

main

C語句的程序一行寫不下時(shí),可以

(

)。

參考答案:

用回車換行

以下敘述不正確的是

()。

參考答案:

C程序中,可以不必包含主函數(shù)

C語言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置

()。

參考答案:

可以任意

以下敘述正確的是

(

)。

參考答案:

在對C語言進(jìn)行編譯的過程中,不能發(fā)現(xiàn)注釋中的錯(cuò)誤

函數(shù)的主體部分需要用一對

(

)括起來。

參考答案:

{}

以下敘述錯(cuò)誤的是

(

)。

參考答案:

只有一個(gè)分號的語句不是合法的C語句

計(jì)算機(jī)能夠直接識別和執(zhí)行的計(jì)算機(jī)語言

(

)。

參考答案:

機(jī)器語言

以下敘述錯(cuò)誤的是

(

)。

參考答案:

一個(gè)C程序編譯成功后在連接時(shí)發(fā)現(xiàn)錯(cuò)誤,需要編輯修改,然后不必重新編譯和連接即可直接運(yùn)行。

對C程序的注釋說明信息必須寫在

()之間。

參考答案:

/*和*/

用C語言編寫的源程序,必須翻譯成用二進(jìn)制指令表示的目標(biāo)程序,才能被計(jì)算機(jī)識別,這個(gè)過程稱為

(

)。

參考答案:

編譯

關(guān)于C語言的特點(diǎn),以下敘述錯(cuò)誤的是

()。

參考答案:

C語言不能直接對硬件進(jìn)行操作

C語言程序的基本構(gòu)成單位是

(

)。

參考答案:

函數(shù)

能夠在編譯過程中被檢查出來,并給出提示信息的是

(

)。

參考答案:

語法錯(cuò)誤

以下敘述錯(cuò)誤的是

(

)。

參考答案:

C語言屬于匯編語言

C語言源程序文件的后綴名是

(

)。

參考答案:

.c

C語言編譯程序是

(

)。

參考答案:

將C源程序編譯成目標(biāo)程序

以下敘述錯(cuò)誤的是

(

)。

參考答案:

C語言程序中只要出現(xiàn)在“/*”和“*/”之間的就一定是注釋內(nèi)容

C語言源程序文件經(jīng)過編譯后的目標(biāo)文件后綴名是

(

)。

參考答案:

.obj

C語言源程序編譯、連接后的可執(zhí)行文件后綴名是

(

)。

參考答案:

.exe

第二章測試

下面4個(gè)選項(xiàng)中,均是不合法的用戶標(biāo)識符的選項(xiàng)的是()。

參考答案:

b+a

if

float

下面4個(gè)選項(xiàng)中均是合法常量的選項(xiàng)是()。

參考答案:

?12.8

0x98

43.56e2

'\n'

以下敘述不正確的是()。

參考答案:

在C語言中,可以使用二進(jìn)制整數(shù)

在C語言中,要求運(yùn)算對象必須是整型的運(yùn)算符是

()。

參考答案:

%

若有說明語句:charch='\0x41';則變量ch包含()個(gè)字符。

參考答案:

1

若有定義:inta=7;floatx=2.5,y=4.5;則表達(dá)式x+a%3*(x+y)/2的值是

()。

參考答案:

6.000000

設(shè)變量a是整型,f是實(shí)型,i是雙精度型,則表達(dá)式10+'a'+i*f值的數(shù)據(jù)類型為()。

參考答案:

double

以下敘述正確的是

()。

參考答案:

在C語言中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符

在C語言中,int型數(shù)據(jù)在內(nèi)存中的存儲形式是()。

參考答案:

補(bǔ)碼

下列選項(xiàng)中可作為C語言的合法整數(shù)的是

()。

參考答案:

0x4b5

字符型數(shù)據(jù)在內(nèi)存中是以

()形式存儲的。

參考答案:

ASCII碼

下列敘述正確的是()。

參考答案:

在C語言中,'b'和"b"的含義是不同的

#include<stdio.h>intmain(){

charch;

inti;

i=65;

ch="a";

printf("%c,%c,%d,%d\n",i,ch,i,ch);

return0;}這段程序的運(yùn)行結(jié)果是()。

參考答案:

編譯錯(cuò)誤,無法運(yùn)行

設(shè)整型變量a=2,則執(zhí)行下列語句后,實(shí)型變量b的值不是0.5的是()。

參考答案:

b=(float)(1/a)

下列敘述正確的是()。

參考答案:

賦值表達(dá)式的左邊只能是變量名

#include<stdio.h>intmain(){

inta=b=5,c;

c=a+b;

printf("c=%d\n",c);}這段程序的運(yùn)行結(jié)果是()。

參考答案:

編譯錯(cuò)誤,無法運(yùn)行

C語言的標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符()。

參考答案:

必須為字母或者下劃線

如果在一個(gè)C語言表達(dá)式中有多個(gè)運(yùn)算符,則運(yùn)算時(shí)應(yīng)該()。

參考答案:

先考慮優(yōu)先級,然后考慮結(jié)合性

已知字符A的ASCII值是65,若定義int

i;則執(zhí)行語句i=’A’+3;后,正確的敘述是

()。

參考答案:

i的值是字符A的ASCII值加上3,即68

在C語言中常量’\n’和常量”ABC”在內(nèi)存中占用的字節(jié)數(shù)分別是()。

參考答案:

1

4

第三章測試

若a、b、c、d都是int類型變量且初值為0,以下選項(xiàng)中不正確的賦值語句是

(

)。

參考答案:

a*b;

以下選項(xiàng)中不是C語句的是

(

)。

參考答案:

a=5,c=10

以下程序的輸出結(jié)果是

(

)。#include

"stdio.h"intmain(){

intx=100,y=30;printf("%d\n",y=x/y);return(0);}

參考答案:

3

若變量已正確說明為int類型,要給a、b、c輸入數(shù)據(jù),以下正確的輸入語句是

(

)。

參考答案:

scanf("%d%d%d",&a,&b,&c);

以下程序段的輸出結(jié)果是(

)#include<stdio.h>intmain(void){

inti;

floatx;

doubley;

y=x=i=10/4;

printf("y=%.2f,x=%.2f,i=%d\n",y,x,i);

return(0);}

參考答案:

y=2.00,x=2.00,i=2

若變量已正確定義,要將a和b中的數(shù)進(jìn)行交換,下面不正確的語句組是

(

)。

參考答案:

a=t;t=b;b=a;

以下程序的輸出結(jié)果是

(

)。

#include<stdio.h>

intmain(void){

int

a=4,b=8;printf("a=%%d,b=%%d\n",a,b);

/*注意轉(zhuǎn)義字符的作用*/return(0);}

參考答案:

a=%d,b=%d

已知字母A的ASCII值為十進(jìn)制數(shù)65,下面程序的輸出是

(

)。#include"stdio.h"intmain(void){

charch1,ch2;ch1='A'+'5'?'3';ch2='A'+'6'?'3';printf("%d,%c\n",ch1,ch2);return(0);

}

參考答案:

67,D

若從終端輸入以下數(shù)據(jù),要給變量c賦以340.25,則正確的輸入語句是(

)。

參考答案:

scanf(%f”,&c)

以下程序運(yùn)行時(shí)輸入:25<回車>,執(zhí)行后輸出的結(jié)果是

(

)。#include<stdio.h>intmain(void){

charch1,ch2;intn1;ch1=getchar();ch2=getchar();n1=ch2-ch1;printf("%d",n1);return(0);}

參考答案:

3

有以下程序#include<stdio.h>intmain(void){

charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();

c6=getchar();

putchar(c1);

putchar(c2);

printf("%c%c\n",c5,c6);

return(0);}程序運(yùn)行后,若從鍵盤輸入(從第一列開始)abc<回車>def<回車>則輸出結(jié)果是(

)。

參考答案:

abde

以下程序段的輸出結(jié)果是(

)。#include<stdio.h>intmain(void){

charc1='a',c2='c';printf("%d,%c\n",c2-c1,c2-c1+'B');return(0);}

參考答案:

2,D

若變量已正確定義為float類型,要通過語句scanf(“%f%f%f”,&a,&b,&c);給a賦值10.0,b賦值20.0,c賦值30.0,不正確的輸入形式是(

)。

參考答案:

10,20,30

以下程序的輸出結(jié)果是()。#include<stdio.h>intmain(void){

inta,b;

a=10;

b=20;

printf("a=%d\nb=%d\n",a,b);

return(0);}

參考答案:

a=10b=20

若變量已正確說明,要求用以下語句給a賦值2.0,給c1賦值字符#,給b賦值4.0,則不正確的輸入形式是(

)。scanf(“%f%c%f”,&a,&c1,&b);

參考答案:

2.0

#

4.0

以下說法錯(cuò)誤的是

(

)。

參考答案:

若floatx=5;可以對變量x進(jìn)行%操作,如x%2的值是1。

結(jié)構(gòu)化程序設(shè)計(jì)由三種基本結(jié)構(gòu)組成,下面哪個(gè)選項(xiàng)不屬于三種基本結(jié)構(gòu)

(

)。

參考答案:

回溯

下面程序段功能是先輸入一個(gè)整數(shù),然后將輸入的整數(shù)輸出,請指出哪部分有錯(cuò)(

)。

#include

<stdio.h>

//1intmain(void){

inti;

//2

scanf("%d",i);//3

printf("i=%d\n",i);//4

return(0);}

參考答案:

3

設(shè)inta=10,b;,執(zhí)行下列語句后,b的值不是2的是(

)。

參考答案:

b=a/4.0

putchar()函數(shù)可以向終端輸出一個(gè)(

)。

參考答案:

字符

第四章測試

表示關(guān)系x≤y≤z的c語言表達(dá)式為(

)。

參考答案:

(x<=y)&&(y<=z)

若a=5;b=6;c=7;d=8;m=2;n=2;則執(zhí)行(m=a>b)&&(n=c>d)后,m和n的值分別為()。

參考答案:

0,2

在以下一組運(yùn)算符中,優(yōu)先級最高的運(yùn)算符是(

)。

參考答案:

%

若有intx,a,b;則下面if語句中,(

)是錯(cuò)誤的。

參考答案:

if(a<>b)

x=x+1;

下列表達(dá)式中,(

)不滿足“當(dāng)x的值為偶數(shù)時(shí)值為真,為奇數(shù)時(shí)值為假”的要求。

參考答案:

!x%2!=0

關(guān)于以下程序,正確的說法是(

)。#include<stdio.h>intmain(void){intx=0,y=0,z=0;

if(x=y+z)

printf("***");

else

printf("###");return(0);}

參考答案:

輸出:###

下列程序的輸出結(jié)果是(

)。#include<stdio.h>intmain(void){

floatx=4,y=1;

if(x<0)y=0;

elseif(x<10)y=1/x;

elsey=10;

printf("%f\n",y);

return(0);}

參考答案:

0.250000

執(zhí)行以下程序時(shí),若輸入3和4,則輸出結(jié)果是(

)。#include<stdio.h>intmain(void){

int

a,b,s;

scanf("%d%d",&a,&b);

s=a;

if(a<b)s=b;

s=s*s;

printf("%d\n",s);

return(0);}

參考答案:

16

下列程序的輸出結(jié)果是(

)。#include<stdio.h>intmain(void){intx=1,a=0,b=0;switch(x){case0:b=b+1;case1:a=a+1;case2:a=a+1;b=b+1;}printf("a=%d,b=%d\n",a,b);return(0);}

參考答案:

a=2,b=1

若有定義:inta=3,b=2,c=1;并有表達(dá)式:①a%b、②a>b>c、③b&&c+1、④c+=1,則表達(dá)式值相等的是(

)。

參考答案:

①和③

當(dāng)a=1,b=3,c=5,d=4時(shí),執(zhí)行完下面一段程序后x的值是(

)。

if(a<b)

if(c<d)

x=1;

else

if(a<c)

if(b<d)

x=2;

else

x=3;

else

x=6;

else

x=7;

參考答案:

2

在下面的條件語句中(其中S1和S2表示C語言語句),只有一個(gè)在功能上與其他3個(gè)語句不等價(jià)(

)。

參考答案:

if(a==0)

S1;

else

S2;

若有inta=3,b;則執(zhí)行下面程序段后b的值是(

)

if(a>0)

b=1;

else

b=-1;

b=b+1;

參考答案:

2

假定所有變量均已正確定義,下面程序段執(zhí)行后的x的值是(

)。

a=b=0;

x=35;

if(!a)x=x-1;

if(b)x=3;

elsex=4;

參考答案:

4

若有說明語句inti=4,j=5,k=6;floatf;則執(zhí)行f=(i>k)?i:(j<k)?j:k;語句后,f的值為(

)。

參考答案:

5.0

下述程序的輸出結(jié)果是(

)#include<stdio.h>intmain(void){

inta=0,b=0,c=0;

if((a+1)>0||(b>0))

c=c+1;

printf("%d,%d,%d",a,b,c);

return(0);

}

參考答案:

0,0,1

若x=0,則執(zhí)行下面程序段后,屏幕上會顯示(

)。

if(x=0)printf("***");

else

printf("&&&");

參考答案:

&&&

若有inta=10,b=20,c=30;,執(zhí)行下面程序段后a、b、c的值分別是()。

if(a>b)

c=a;

a=b;

b=c;

參考答案:

20、30、30

下列程序的輸出結(jié)果是(

)。

#include<stdio.h>

intmain(void)

{intk=8;

switch(k)

{

case7:k+=1;

case8:k+=1;

case9:k+=1;break;

default:k+=1;

}

printf("%d\n",k);

return(0);

}

參考答案:

10

若有float

x;

int

a,b;,下面四條switch語句中正確的有(

)條。switch(x){

case

x=1.0:printf(“Y”);

case

x=2.0:printf(“N”);

}

switch(a)

{

case

a=1:printf(“Y”);

case

a=2:printf(“N”);

}

switch(b)

{

case

b==1:printf(“Y”);

case

b==2:printf(“N”);

}

switch(x){

case

1.0:printf(“Y”);

case

2.0:printf(“N”);

}

參考答案:

1

第五章測試

以下程序段中while循環(huán)執(zhí)行的次數(shù)是(

)。

intk=0;

while(k=1)k++;

參考答案:

無限次

以下描述中正確的是(

)。

參考答案:

在do-while循環(huán)中,循環(huán)體至少執(zhí)行一次

在C語言中有關(guān)for循環(huán),以下正確的說法是(

)。

參考答案:

for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用大括號括起來

以下下面程序的運(yùn)行結(jié)果是(

)。#include<stdio.h>intmain(){

inta=1,b=2,c=2,t;while(a<b<c){t=a;a=b;b=t;

c--;}printf(“%d,%d,%d”,a,b,c);}

參考答案:

1,2,0

若i,j已定義為int類型,則以下程序段中內(nèi)循環(huán)體的總的執(zhí)行次數(shù)是(

)。for(i=5;i;i--)for(j=0;j<4;j++){...}

參考答案:

20

下面程序的輸出結(jié)果是(

)。#include<stdio.h>intmain(){

int

i,j;

for(i=0,j=10;i<j;i+=2,j--)

;printf("%d%d",i,j);}

參考答案:

8

6

下面關(guān)于switch語句和break語句的結(jié)論中,說法正確的是(

)。

參考答案:

在switch語句中,可以根據(jù)需要使用或者不使用break語句

以下不是死循環(huán)的語句是(

)。

參考答案:

for(;(c=getchar())!=’\n’;)printf(“%c”,c);

與語句頭while(!x)等價(jià)的語句頭是(

)。

參考答案:

while(x==0)

在while(x)語句中的x與下列條件表達(dá)式等價(jià)的是(

)。

參考答案:

x!=0

下面程序的功能是:在輸入的一批正數(shù)中求最大者,輸入0結(jié)束循環(huán),選擇(

)填空。#include<stdio.h>intmain(){

inta,max=0;

scanf("%d",&a);

while(

)

{

if(max<a)max=a;

scanf("%d",&a);

}

printf("%d",max);}

參考答案:

a

下面程序的功能是從鍵盤輸入一行字符,從中統(tǒng)計(jì)大寫字母和小寫字母的個(gè)數(shù),選擇(

)填空。#include<stdio.h>intmain(){

intm=0,n=0;

charc;

while((

)!='\n')

{

if(c>='A'&&c<='Z')m++;

if(c>='a'&&c<='z')n++;

}

printf("m=%d,n=%d\n",m,n);}

參考答案:

c=getchar()

下面程序的輸出結(jié)果是(

)。#include<stdio.h>intmain(){

intk=0,m=0,i,j;

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

k++;

k-=j;

}

m=i+j;

printf("k=%d,m=%d",k,m);}

參考答案:

k=0,m=5

下面程序的輸出結(jié)果是(

)。#include<stdio.h>intmain(){

charc='A';

intk=0;

do

{switch(c++)

{case'A':k++;break;

case'B':k--;

case'C':k+=2;break;

case'D':k%=2;continue;

case'E':k*=10;break;

default:k/=3;

}

k++;

}while(c<'G');

printf("k=%d",k);}

參考答案:

k=4

下面程序的運(yùn)行結(jié)果是(

)。#include<stdio.h>intmain(){

inti;

for(i=1;i<=5;i++){

if(i%2)printf(“*”);

else

continue;printf(“#”);}

printf(“$\n”);}

參考答案:

*#*#*#$

下面程序段的運(yùn)行結(jié)果是(

)。intx=3;do{printf("%d\n",x-=2);}while(!(--x));

參考答案:

輸出的是1和-2

下面程序段的運(yùn)行結(jié)果是(

)。x=y=0;while(x<15)y++,x+=++y;printf("%d,%d",y,x);

參考答案:

20,8

下面程序的功能是將從鍵盤輸入的一對數(shù),由小到大排序輸出。當(dāng)輸入一對相等數(shù)時(shí)結(jié)束循環(huán),請選擇(

)填空:#indude<Stdio.h>intmain(){inta,b,t;scanf("%d%d",&a,&b);while(【1】){if(a>b){t=a;a=b;b=t;}printf("%d,%d",a,b);scahf("%d%d",&a,&b);人}

參考答案:

a!=b

對for(表達(dá)式1;;表達(dá)式3)可理解為(

)。

參考答案:

for(表達(dá)式1;1;表達(dá)式3)

若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是(

)。for(i=2;i==0;)printf("%d",i--);

參考答案:

0次

第六章測試

在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是(

)。

參考答案:

整型常量或整型表達(dá)式

以下程序的輸出結(jié)果是(

)。intmain(){inta[5]={1,2,3};printf(“%d\n”,a[3]);}

參考答案:

0

以下程序的輸出結(jié)果是(

)。

int

main(

){

int

i,

k,a[10]={1,5,3,4,2,8,9,6,7,0};

for

(i=0,k=0;

i<10;

i++)

if(a[k]<a[i])

k=i;

printf("%d",k);}

參考答案:

6

以下程序的輸出結(jié)果(

)。

int

main(

){int

i,j,s=0,a[2][3]={1,2,3,4,5,6};for

(i=0;

i<2;

i++)

for

(j=0;

j<3;

j++)

s=s+a[i][j];printf(“%d”,s);}

參考答案:

21

有以下程序運(yùn)行后的輸出結(jié)果是(

)。int

main(

){int

aa[4][4]={{1,2,3,4},

{5,6,7,8},{3,9,10,2},{4,2,9,6}};

int

i,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf(“%d

”,s);}

參考答案:

19

數(shù)組定義為inta[3][2]={1,3,4,6,8,10},數(shù)組元素(

)的值為6。

參考答案:

a[1][1]

定義inta[10][11],則數(shù)組a有(

)個(gè)元素。

參考答案:

110

以下不能對二維數(shù)組a進(jìn)行正確初始化的語句是(

)。

參考答案:

inta[2][3]={{1,2},{3,4},{5,6}};

若有定義語句:inta[3][5];,按在內(nèi)存中的存放順序,a數(shù)組的第8個(gè)元素是(

)。

參考答案:

a[1][2]

若有定義

int

a[10];則對a數(shù)組元素的正確應(yīng)用是

(

)。

參考答案:

a[1+2]

以下能對一維數(shù)組a進(jìn)行正確初始化的語句是()。

參考答案:

inta[]={0};

以下對二維數(shù)組a的正確說明是()。

參考答案:

doublea[1][4];

若有說明:inta[3][4]={0};則下面正確的敘述是(

)。

參考答案:

數(shù)組a中每個(gè)元素均可得到初值0

若有定義:ints[3][4]={{1,2},{0},{3,4,5}};則s[2][1]的值為(

)。

參考答案:

4

若有定義inta[2][3];則合法引用數(shù)組元素的是(

)。

參考答案:

a[1][2]

在以下數(shù)組定義中,錯(cuò)誤的是(

)。

參考答案:

inta[2][]={1,2,3,4,5};

以下程序段執(zhí)行后p的值是(

)。int

a[3][3]={3,2,1,3,2,1,3,2,1};

int

j,k,p=1;for(j=0;j<2;j++)for(k=j;k<3;k++)p*=a[j][k];

參考答案:

12

以下程序段執(zhí)行后p的值是(

)。

int

a[3][3]={3,2,1,3,2,1,3,2,1};

int

j,k,p=1;for(j=0;j<2;j++)for(k=j;k<4;k++)p*=a[j][k];

參考答案:

108

以下程序段運(yùn)行后s的值是(

)。

int

a[3][3]={1,2,3,4,5,1,2,3,4};int

i,j,s=1;for(i=0;i<3;i++)for(j=i+1;j<3;j++)s+=a[i][j];

參考答案:

7

下面程序段的運(yùn)行結(jié)果是(

)。

int

m[]={5,8,7,6,9,2},i=1;for(i=0;i<6;i++)

{if(i

%

2

!=0)

m[i]+=10;

}for(i=0;i<6;i++)

printf("%d

",m[i]);

參考答案:

518716912

第七章測試

變量的指針,其含義是指變量的(

)。

參考答案:

地址

以下敘述錯(cuò)誤的是(

)。

參考答案:

指針變量不占用存儲空間

已知指針變量P的指向如圖1所示,則表達(dá)式*P++的值是(

)。

參考答案:

20

已知指針變量P的指向如圖1所示,則表達(dá)式*++P的值是(

)。

參考答案:

30

已知指針變量P的指向如圖1所示,則表達(dá)式++(*P)的值(

)。

參考答案:

21

假設(shè)整型變量a的值為12,變量a的地址為2000,若欲使p為指向a的指針變量,則以下賦值正確的是(

)。

參考答案:

p=&a;

若有定義:intb,*pb;則下面正確的賦值表達(dá)式是(

)。

參考答案:

pb=&b

設(shè)inta[10],*p=a;,則下面(

)不是對a[3]的正確引用。

參考答案:

p+3

若有如下定義:inta[10]={10,20,30,40,50,60,70,80,90,100},*p=a;,則執(zhí)行p=p+5后,*p的值是(

)。

參考答案:

60

若int*p,i;執(zhí)行i=100;p=&i;i=*p+10;后,*p的值是(

)。

參考答案:

110

以下程序的輸出結(jié)果是(

)。#include<stdio.h>intmain(){

inta[]={2,4,6,8,10},y=0,i,*p;

p=a;

for(i=0;i<3;i++)

y+=*(p+i);

printf("%d\n",y);}

參考答案:

12

以下程序的輸出結(jié)果是(

)。#include<stdio.h>intmain()

{inta=1,b=2,c=3,*p1,*p2,*p3;

p1=&a;p2=&b;

p3=&c;

*p3=*p1;

*p1=*p2;

*p2=*p3;

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

參考答案:

a=2,b=1,c=3

以下程序的輸出結(jié)果是

)。#include<stdio.h>intmain(){intk=2,m=4,n=6;int*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf("%d\n",n);return0;}

參考答案:

8

以下程序的輸出結(jié)果是(

)。#include<stdio.h>intmain(){int**k,*a,b=100;a=&b;k=&a;printf("%d\n",**k);return0;}

參考答案:

100

對于基類型相同的兩個(gè)指針變量之間,不能進(jìn)行的運(yùn)算時(shí)(

)。

參考答案:

+

若有inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

int(*p)[3]=a;,則能正確表示數(shù)組元素a[1][2]的是(

)。

參考答案:

*(*(p+1)+2)

對于語句int*p[5];的正確描述是(

)。

參考答案:

p是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素都是一個(gè)指向int型對象的指針變量。

若有inta[10],*p=a;,下列不能表示a數(shù)組首元素地址的是(

)。

參考答案:

*p

下列程序的運(yùn)行結(jié)果是(

)。#include<stdio.h>intmain(){inta[5]={1,2,3,4,5},*p,**pp;

p=a;

pp=&p;

printf("%d",*(p+3));

printf("%d",**pp);

return0;}

參考答案:

4

1

若有inta[10],*p;,則下列語句中正確的是(

)。

參考答案:

for(p=a;p<a+10;p++)

第八章測試

函數(shù)strcmp("ABCDDCBA","ABCDE")的返回值是(

)。

參考答案:

負(fù)數(shù)

以下程序運(yùn)行后的輸出結(jié)果是(

)。intmain(){inti,j;chara[]={‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};i=sizeof(a);//sizeof返回?cái)?shù)組a在內(nèi)存分配字節(jié)數(shù)j=strlen(a);printf(“%d,%d\n”,i,j);}

參考答案:

9,8

下列選項(xiàng)中,不正確的賦值方式是(

)。

參考答案:

charstr1[10];str1="string";

若有以下的說明和語句,則它與(

)中的說明是等價(jià)的。chars[3][5]={"aaaa","bbbb","cccc"};

參考答案:

chars3[][5]={"aaaa","bbbb","cccc"};

有以下程序:#include"stdio.h"#include"string.h"intmain()

{

inti,j;

chart[10],p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};

for(i=0;i<4;i++)

for(j=i+1;j<5;j++)

if(strcmp(p[i],p[j])>0)

{

strcpy(t,p[i]);strcpy(p[i],p[j]);

strcpy(p[j],t);

}

printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果是(

)。

參考答案:

6

下列選項(xiàng)正確的語句組是(

)。

參考答案:

char*s;s="China";

下面程序的運(yùn)行結(jié)果是(

)。charc[6]={'a','b','\0','c','d','\0'};printf("%s",c);

參考答案:

ab

有兩個(gè)字符數(shù)組a、b,則以下正確的輸入語句是(

)。

參考答案:

scanf("%s%s",a,b);

下面程序段的運(yùn)行結(jié)果是(

)。chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c",a[5]);

參考答案:

f

下面程序段的輸出結(jié)果是(

)。#include

<stdio.h>int

main(){

char

str[]="I

like

swimming!

",*p=str;

p=p+7;

printf("%s",p);}

參考答案:

swimming!

下面哪個(gè)選項(xiàng)不能將"hello"字符串存入字符數(shù)組str中(

)。

參考答案:

charstr[30];str="hello";

有以下定義,不能表示字符

'C'

的表達(dá)式是(

)。char

str[]="ABCDEFG",*p=str;

參考答案:

*p+2

程序段char

c[]="abcdefg

";

printf("%s",c+4);的運(yùn)行結(jié)果是(

)。

參考答案:

efg

有如下定義,不能給數(shù)組a輸入字符串的是(

)。char

a[20],*p=a;

參考答案:

gets(a[0])

下面說法正確的是(

)。

參考答案:

函數(shù)strcpy(str1,str2);的功能是將str2中字符串復(fù)制到str1中。

接受用戶輸入含有空格的字符串時(shí),應(yīng)使用(

)。

參考答案:

gets()

列描述中錯(cuò)誤的是

)。

參考答案:

不能對字符數(shù)組存儲的字符串進(jìn)行更改。

執(zhí)行以下程序段后,輸出結(jié)果是(

)。

char

str[20]="door",t;

int

i,j;

i=0;

j=strlen(str)-1;

t=str[i];

str[i]=str[j];

str[j]=t;

puts(str);

參考答案:

rood

若有如下定義chara[30],b[30],則以下正確的輸入語句是(

參考答案:

gets(a);gets(b);

執(zhí)行以下程序段后,輸出結(jié)果是(

)。chars[20]="Good",t[]="Moring!";strcat(s,t);puts(s);

參考答案:

GoodMoring!

第九章測試

在c語言中以下不正確的說法是(

)。

參考答案:

形參可以是常量、變量或表達(dá)式

以下程序有語法性錯(cuò)誤,有關(guān)錯(cuò)誤原因的正確說法是(

)。?#include<stdio.h>int?main(void)????{??int?G=5,k;?void??prt_char();?

……???k=prt_char(G);???……return0;}?

參考答案:

函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾

下述函數(shù)定義形式正確的是(

)。

參考答案:

int

f(intx,inty)

以下所列的各函數(shù)首部中,正確的是(

)。

參考答案:

void?play(int?a,int?b)

若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是(

)。

參考答案:

函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參

在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是(

)。

參考答案:

單向值傳遞

有以下程序:#include<stdio.h>voidfun(inta,intb,intc){a=11;b=22;c=33;}intmain(void){

intx=10,y=20,z=30;

fun(x,y,z);printf(“%d,%d,%d\n”,x,y,z);

return0;}該程序輸出結(jié)果是(

)。

參考答案:

10,20,30

關(guān)于函數(shù)參數(shù),說法正確的是(

)。

參考答案:

實(shí)參與其對應(yīng)的形參各自占用獨(dú)立的內(nèi)存單元

一個(gè)函數(shù)的返回值由(

)確定。

參考答案:

被調(diào)用函數(shù)的類型

下列程序的輸出結(jié)果是(

)。fun(inta,intb,intc){c=a+b;}intmain(void){

intc;

fun(2,3,c);

printf(“%d\n”,c);

return0;}

參考答案:

不定

有以下程序:#include<stdio.h>intfun(intx){

printf(“x=%d\n”,++x);}intmain(){

fun(12+5);

return0;}程序的輸出結(jié)果是(

)。

參考答案:

x=18

有如下程序:#include<stdio.h>inti=1;intmain(){

inti=i;printf("%d\n",i);return0;}程序的輸出結(jié)果是(

)。

參考答案:

不確定

有如下程序:#include<stdio.h>intf(intx){returnx+3;}intmain(void){

inta=1;

while(f(a)<10)a++;

return0;}程序執(zhí)行后,變量a的值是(

)。

參考答案:

7

以下說法中正確的是(

)。

參考答案:

形參是局部變量,其作用范圍僅限于函數(shù)內(nèi)部

定義為void類型的函數(shù),其含義是(

)。

參考答案:

調(diào)用函數(shù)后,被調(diào)用的函數(shù)沒有返回值

當(dāng)全局變量和函數(shù)內(nèi)部的局部變量同名時(shí),在函數(shù)內(nèi)部(

)。

參考答案:

局部變量有效

有如下程序:#include<stdio.h>fun(inta){autointb=0;

staticintc=3;

b=b+1;c=c+1;

return(a+b+c);}intmain(void){

inta=2,i;

for(i=0;i<3;i++)

printf(“%d“,fun(a));

return0;}它的輸出結(jié)果是(

)。

參考答案:

7

8

9

有如下程序:#include<stdio.h>voidfun(intx,inty){intt;

if(x>y){t=x;x=y;y=t;}}intmain(void){inta=4,b=7,c=5;

fun(a,b);fun(a,c);fun(b,c);

printf(“%d,%d,%d\n”,a,b,c);

return0;}它的輸出結(jié)果是(

)。

參考答案:

4,7,5

有如下程序:#include<stdio.h>f(inta){intb=0;

staticintc=3;

a=c++;b++;

return(a);}intmain(void){inta=2,i,k;

for(i=0;i<2;i++)k=f(a++);

printf(“%d\n”,k);

return0;}該程序的輸出結(jié)果是(

)。

參考答案:

4

凡是未指明存儲類別的局部變量,其隱含的存儲類別是(

)。

參考答案:

auto

第十章測試

若有數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是(

)。

參考答案:

數(shù)組的首地址

若使用一維數(shù)組名作為函數(shù)實(shí)參,則以下描述中正確的是(

)。

參考答案:

在被調(diào)用函數(shù)中,不需要考慮形參數(shù)組的大小

以下敘述正確的是(

參考答案:

C語言中各函數(shù)(除主函數(shù)外)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

下列程序的輸出結(jié)果是(

)。#include<stdio.h>voidsub(intx,inty,int*z){*z=y-x;}intmain(){

inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);return0;}

參考答案:

-5,-12,-7

下列程序的輸出結(jié)果是(

)。

#include<stdio.h>voidprtv(int*x){printf("%d\n",++*x);}intmain(){

inta=25;prtv(&a);return0;}

參考答案:

26

下列程序的輸出結(jié)果是(

)。

#include

<stdio.h>void

fun(int

*a,int

*b){int

w;

*a=*a+*a;

w=*a;

*a=*b;

*b=w;}int

main(){

int

x=2,

y=3,*px=&x,*py=&y;;fun(px,py);printf("%d,%d\n",x,y);return

0;}

參考答案:

3,4

以下程序運(yùn)行時(shí),若輸入5103,則輸出結(jié)果是(

)。#include<stdio.h>voidswap(int*p1,int*p2){intt;

t=*p1;

*p1=*p2;

*p2=t;

return;}intmain(){inta,b,c;

scanf("%d%d%d",&a,&b,&c);

if(a>b)swap(&a,&b);

if(a>c)swap(&a,&c);

if(b>c)swap(&b,&c);

printf("%d,%d,%d\n",a,b,c);

return0;}

參考答案:

3,5,10

以下程序運(yùn)行時(shí),若輸入5,則輸出結(jié)果是(

)。#include<stdio.h>intfac(intn){staticintk=1;

k=k*n;

returnk;}intmain(){intm,i,f;

scanf("%d",&m);

for(i=1;i<=m;i++)

{f=fac(i);

printf("%d",f);

}}

參考答案:

12624120

下列程序的輸出結(jié)果是(

)。#include<stdio.h>intfun(inta){intb;

if(a==0||a==1)

return3;

b=a*a-fun(a-2);

returnb;}intmain(){intx,y;

x=fun(3);

y=fun(4);

printf("%d,%d\n",x,y);

return0;}

參考答案:

6,15

下列程序的輸出結(jié)果是(

)。#include<stdio.h>intfun(int(*p)[3]){inti,j,n;

n=p[0][0];

for(i=0;i<2;i++)

for(j=0;j<3;j++)

if(p[i][j]>n)

n=p[i][j];

returnn;}intmain(){inta[2][3]={11,32,13,44,5,6},m;

m=fun(a);

printf("%d\n",m);

return0;}

參考答案:

44

下列程序的運(yùn)行結(jié)果是(

)。#include<stdio.h>voidfun(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}intmain(){inta,b,c,d;a=4;b=3;fun(a,b,&c,&d);printf("%d,%d\n",c,d);return0;}

參考答案:

7,1

下列程序的運(yùn)行結(jié)果是(

)。#include<stdio.h>voidop(int(*p)[3]){inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(p[i][j]%3==0)

printf("%d",p[i][j]);}intmain(){ints[3][3]={1,2,3,4,5,6,7,8,9};

op(s);

return0;}

參考答案:

369

以下程序運(yùn)行時(shí),若輸入5,則程序的輸出結(jié)果是(

)。#include<stdio.h>intfun(intn){if(n==1)

return1;

else

returnn+fun(n-1);}intmain(){intm;

scanf("%d",&m);

m=fun(m);

printf("%d\n",m);}

參考答案:

15

以下程序運(yùn)行時(shí),若輸入ab012kd99pk8,則程序的輸出結(jié)果是(

)。#include<stdio.h>voidfun(chars[]){inti,j;

for(i=0,j=0;s[i]!='\0';i++)

if(s[i]>='0'&&s[i]<='9')

s[j++]=s[i];

s[j]='\0';}intmain(){charstr[80];

gets(str);

fun(str);

puts(str);

return0;}

參考答案:

012998

若有以下程序:#include<stdio.h>voidf(int*q,intn){inti;

for(i=0;i<n;i++)

(*q)++;

return;}intmain(void){inta[5]={1,2,3,4,5},i;

f(a,5);

for(i=0;i<5;i++)

printf("%d,",a[i]);

return0;}則程序的輸出結(jié)果是(

)。

參考答案:

6,2,3,4,5,

形參數(shù)組與實(shí)參數(shù)組,在內(nèi)存空間中是(

)的。

參考答案:

完全重疊

若有以下程序:#include<stdio.h>int*fun(int*s,int*t){if(*s<*t)

s=t;

returns;}intmain(void){inta=3,b=6,*p=&a,*q=&b,*r;

r=fun(p,q);

printf("%d,%d,%d\n",*p,*q,*r);

return0;}則程序的輸出結(jié)果是(

)。

參考答案:

3,6,6

若有以下程序:#include<stdio.h>intfun(intx){

if(x>10)

{printf("%d-",x%10);

fun(x/10);

}

else

printf("%d",x);

return;}intmain(void){

intz=123456;

fun(z);

return0;}則程序的輸出結(jié)果是(

)。

參考答案:

6-5-4-3-2-1

第十一章測試

以下敘述不正確的是(

)。

參考答案:

C程序在執(zhí)行過程中對預(yù)處理命令行進(jìn)行處理

在宏定義#definePI3.1415926中,用宏名PI代替一個(gè)(

)。

參考答案:

字符串

以下敘述正確的是(

)。

參考答案:

宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間

以下在任何情況下計(jì)算平方數(shù)時(shí),都不會引起二義性的宏定義是(

)。

參考答案:

#definePOWER(x)

((x)*(x))

在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用””(雙引號)括起時(shí),尋找被包含文件的方式是(

)。

參考答案:

現(xiàn)在源程序所在目錄搜索,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

有以下程序:#defineADD(x)

x+x#include"stdio.h"intmain(void){

intm=1,n=2,k=3;

intsum=ADD(m+n)*k;

printf("sum=%d",sum);

return0;}該程序的運(yùn)行結(jié)果是(

)。

參考答案:

sum=10

若有如下宏定義:#define

X

5#define

Y

X+1#define

Z

Y*X/2則執(zhí)行以下printf語句后,輸出結(jié)果是(

)。inta;

a=Y;printf("%d",Z);printf("%d",--a);

參考答案:

7

5

以下程序的運(yùn)行結(jié)果是(

)。

#define

MAX(A,B)

(A)>(B)?(A):(B)

#define

PRINT(Y)

printf(“Y=%d”,Y)

#include“stdio.h”

intmain(void)

{

inta=1,b=2,c=3,d=4,t;

t=MAX(a+b,c+d)

PRINT(t);

return0;

}

參考答案:

Y=7

以下程序的輸出結(jié)果是(

)。#include<stdio.h>#define

MUL(x,y)

(x)*y#include“stdio.h”intmain(void)

{

inta=3,b=4,c;

c=MUL(a++,b++);

printf("%d",c);

return0;}

參考答案:

12

用宏替代計(jì)算多項(xiàng)式4*x*x+3*x+2之值的函數(shù)f,正確的宏定義是(

)。

參考答案:

#define

f(a)

(4*(a)*(a)+3*(a)+2)

第十二章測試

C語言規(guī)定結(jié)構(gòu)體變量系統(tǒng)分配給它的存儲空間是(

)。

參考答案:

該結(jié)構(gòu)體中所有成員所需存儲空間的總和

以下對結(jié)構(gòu)體變量s中成員age的合法法引用是(

)。#include<string.h>structstudent{intage;intnum;}s,*p;p=&s;

參考答案:

p->age

有如下定義:structdate{inty;intm;intd;};structperson{

charname[20];

charsex;

structdatebirthday;}a;對結(jié)構(gòu)體變量a的出生年份進(jìn)行賦值時(shí),下面正確的賦值語句是(

)。

參考答案:

a.birthday.y=1958

設(shè)有以下說明語句struct

stu{

inta;floatb;}stutype;則以下敘述不正確的是(

)。

參考答案:

structstu是用戶定義的結(jié)構(gòu)體類型名

以下結(jié)構(gòu)體類型說明和變量定義中正確的是(

)。

參考答案:

typedef

struct

{intn;charc;}REC;

REC

x,y;

下面程序的運(yùn)行結(jié)果是(

)。

struct

st

{int

n;

int

a[20];

};voidf(int

*a,intn){

inti;for(i=0;i<n;i++)

a[i]+=I;}intmain(){

inti;

structst

x={10,{2,3,1,6,8,7,5,4,10,9}};f(x.a,x.n);for(i=0;i<s.n;i++)

printf(”%d,”,x.a[i]);}

參考答案:

2,4,3,9,12,12,11,11,18,18,

以下關(guān)于typedef的敘述錯(cuò)誤的是(

)。

參考答案:

用typedef可以增加新類型

下面程序的運(yùn)行結(jié)果是(

)。#include<stdio.h>#include<string.h>typedefstruct{charname[9];charsex;floatscore[2];}stu;stuf(stua){stub={“zhao”,’m’,85.0,90.0};

inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)

a.score[i]=b.score[i];returna;}intmain(){stuc={"qian",'f',95.0,92.0},d;d=f(c);printf(“%s,%c,%2.0f,%2.0f\n”,,d.sex,d.score[0],d.score[1]);}

參考答案:

zhao,m,85,90

以下程序運(yùn)行后的輸出結(jié)果是(

)。#include<stdio.h>structS{intn;inta[20];};voidf(structS*p){

inti,j,t;for(i=0;i<p->n-1;i++)

for(j=i+1;j<p->n;j++)

if(p->a[i]>p->a[j])

{t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}intmain(){

inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)

printf(”%d,”,s.a[i]);}

參考答案:

1,2,3,4,5,6,7,8,9,10,

有以下程序段typedefstructnode{

intdata;structnode*next;}NODE;NODE

*p;以下敘述正確的是(

)。

參考答案:

p是指向structnode結(jié)構(gòu)體變量的指針

若定義如下結(jié)構(gòu),則能打印出字母M的語句是(

)。structperson{charname[9];intage;};structpersonclass[10]={"Wujun",20,"Liudan",23,"Maling",21,"zhangming",22};

參考答案:

printf("%c\n",class[2].name[0]);

以下程序段的運(yùn)行結(jié)果是(

)。union{intn;charstr[2];}t;t.n=80;t.str[0]='a';t.str[1]=0;printf("%d\n",t.n);

參考答案:

97

以下對C語言中共用體類型數(shù)據(jù)的敘述正確的是(

)。

參考答案:

一個(gè)共用體變量中不能同時(shí)存放其所有成員

若有以下說明和定義語句,則下面引用形式中不正確的是(

)。structstudent{intage;intnum;};structstudentstu[3]={{1001,20},{1002,19},{1003,21}};structstudent*p;p=stu;

參考答案:

p=&stu.age

以下scanf函數(shù)調(diào)用語句中,對結(jié)構(gòu)體變量成員的不正確引用是(

)。structpupil{charname[20];intage;intsex;}pup[5],*p;p=pup;

參考答案:

scanf(“%d“,&sex);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論