西工大19秋《C語(yǔ)言程序設(shè)計(jì)》在線考試(100分)
試卷總分:100 得分:100
一、 單選題 (共 35 道試題,共 70 分)
1. 當(dāng)c的值不為0時(shí),在下列選項(xiàng)中能夠?qū)的值賦給變量a、b的是( )。
A.c=b=a;
B.(a=c)(b=c);
C.(a=c)&&(b=c);
D.a=c=b;
2. 設(shè)有 int x=8; 則表達(dá)式 (++x*1/3) 的值是( )。
A.2
B.3
C.2.6
D.0
3. 運(yùn)行程序:
#include
main()
{
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");
}
}則輸出結(jié)果是( )。
A.good
B.pass
C.warn
D.passwarn
4.假定w、x、y、z、m均為整型變量,且w=1, x=2, y=3, z=4則執(zhí)行語(yǔ)句:m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;后,m的值是( )。
A.4
B.3
C.2
D.1
5. 以下有關(guān)宏替換敘述中,錯(cuò)誤的是( )。
A.宏替換不占用運(yùn)行時(shí)間
B.宏無(wú)類型名
C.宏替換只是字符替換
D.宏名必須用大寫(xiě)字母表示
6. 設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是( )。
A.x=y*5=x+z
B.int(15.8%5)
C.x=y+z+5,++y
D.x=25%5.0
7. 執(zhí)行語(yǔ)句for(i=1;i++<4; ); 后變量i的值是( )。
A.3
B.4
C.5
D.不定
8. 執(zhí)行以下語(yǔ)句后b的值為( )。
int a,b,c; a=b=c=1; ++a||++b&&++c;
A.1
B.2
C.錯(cuò)誤
D.0
9. 以下定義語(yǔ)句中正確的是( )。
A.int a=b=0;
B.char A=65+1,b=′b′;
C.float a=1,*b=&a,*c=&b;
D.double a=0.0;b=1.1;
10. 在C語(yǔ)言中,二維數(shù)組元素在內(nèi)存中的存放順序是( )。
A.按行存放
B.按列存放
C.由用戶自己定義
D.由編譯器決定
11. printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長(zhǎng)度大于5,則輸出按方式( )。
A.從左起輸出該字串,右補(bǔ)空格
B.按原字符長(zhǎng)從左向右全部輸出
C.右對(duì)齊輸出該字串,左補(bǔ)空格
D.輸出錯(cuò)誤信息
12. 設(shè)有: int a=1,b=2,c=3,d=4,m=2,n=2; 執(zhí)行 (m=a>b)&&(n=c>d)后,n的值是 ( )。
A.1
B.2
C.3
D.4
13. 有以下程序
main()
{ int i,s=1;
for (i=1;i<50;i++)
if(!(i%5)&&!(i%3)) s+=i;
printf("%d\n",s);
A.409
B.277
C.1
D.91
14. 以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是( )。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
15. 執(zhí)行下面程序:
main()
{
int n;
scanf("%d",&n);
if(n++<5) printf("%d\n",n);
else printf("%d\n",n--);
}
若從鍵盤(pán)上輸入4,則輸出結(jié)果是( )。
A.6
B.4
C.5
D.3
16. 不合法的常量是( )。
A.'\2'
B.'""'(外面是單引號(hào))
C." "
D."\483"
17. ( )是構(gòu)成C語(yǔ)言程序的基本單位。
A.函數(shù)
B.過(guò)程
C.子程序
D.子例程
18. 在C語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是 ( )。
A.auto和register
B.extern和register
C.auto和static
D.static和register
19. 若二維數(shù)組a由m列,則在a[i][j]之前的元素個(gè)數(shù)為( )。
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
20. 以下選項(xiàng)中不屬于字符常量的是( )。
A.′C′
B.′′C′′
C.′\xCC′
D.′\072′
21.下列程序的輸出結(jié)果是( )。
#include "stdio.h"
main()
{ int i,a=0,b=0;
for(i=1;i<10;i++)
{ if(i%2==0)
{ a++;
continue;
A.a=4,b=4
B.a=4,b=5
C.a=5,b=4
D.a=5,b=5
22. 在while(x)語(yǔ)句中的x與下面條件表達(dá)式等價(jià)的是( )。
A.x==0
B.x==1
C.x!=1
D.x!=0
23. 以下敘述中錯(cuò)誤的是( )。
A.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個(gè)整數(shù)作為地址值
D.當(dāng)在程序的開(kāi)頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL
24. 閱讀下列程序,則運(yùn)行結(jié)果為( )。
#include "stdio.h"
fun()
{ static int x=5;
x++;
return x;\
A.5
B.6
C.7
D.8
25. 若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)( )。
A.getc()
B.gets()
C.getchar()
D.scanf()
26. 對(duì)for(表達(dá)式1; ; 表達(dá)式3)可理解為( )。
A.for(表達(dá)式1; 0;表達(dá)式3)
B.for(表達(dá)式1: 1 ;表達(dá)式3)
C.for(表達(dá)式1; 表達(dá)式1; 表達(dá)式3)
D.for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3)
27. C語(yǔ)言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置( )。
A.必須在最開(kāi)始
B.必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面
C.可以任意
D.必須在最后
28. 假定x和y為 double型,則表達(dá)式x=2,y=x+3/2的值是( )。
A.3.500000
B.3
C.2.000000
D.3.000000
29. C語(yǔ)言結(jié)構(gòu)體類型變量在程序運(yùn)行期間( )。
A.TC環(huán)境在內(nèi)存中僅僅開(kāi)辟一個(gè)存放結(jié)構(gòu)體變量地址的單元
B.所有的成員一直駐留在內(nèi)存中
C.只有最開(kāi)始的成員駐留在內(nèi)存中
D.部分成員駐留在內(nèi)存中
30. 以下不正確的定義語(yǔ)句是( )。
A.double x[5]={2.0,4.0,6.0,8.0,10.0;
B.int y[5]={0,1,3,5,7,9;
C.char c1[]={′1′,′2′,′3′,′4′,′5′;
D.char c2[]={′\x10′, ′xa′, ′\x8′;
31. 整型變量x和y的值相等且為非0值,則下面表達(dá)式中結(jié)果為零的是( )。
A.xy
B.xy
C.x&y
D.x^y
32. 已知double *p[6]; 它的含義是( )。
A.p是指向double類型變量的指針
B.p是double類型數(shù)組
C.p是指針數(shù)組
D.p是數(shù)組指針
33. 當(dāng)順利執(zhí)行了文件關(guān)閉操作時(shí),fclose函數(shù)的返回值是( )。
A.0
B.True
C.-1
D.1
34. 在下列結(jié)論中,只有一個(gè)是正確的,它是( )。
A.遞歸函數(shù)中的形式參數(shù)是自動(dòng)變量
B.遞歸函數(shù)中的形式參數(shù)是外部變量
C.遞歸函數(shù)中的形式參數(shù)是靜態(tài)變量
D.遞歸函數(shù)中的形式參數(shù)可以根據(jù)需要自己定義存儲(chǔ)類型
35. feof函數(shù)用來(lái)判斷文件是否結(jié)束,如果文件沒(méi)有結(jié)束,則返回值是( )。
A.-1
B.0
C.1
D.EOF
二、 判斷題 (共 15 道試題,共 30 分)
1. 設(shè)有程序段"char s[ ]="program";char *p;p=s;"表示數(shù)組的第一個(gè)元素s[0]和指針p相等。
A.錯(cuò)誤
B.正確
2. 凡是函數(shù)中未指明存儲(chǔ)類別的局部變量,其隱含的存儲(chǔ)類別為自動(dòng)auto。
A.錯(cuò)誤
B.正確
3. 設(shè)int a=12;則執(zhí)行完語(yǔ)句a+=a-=a*a后,a的值為144。
A.錯(cuò)誤
B.正確
4. 函數(shù)的實(shí)參和與其對(duì)應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元。
A.錯(cuò)誤
B.正確
5. 0a12,-0x123,-0xa均是正確的八進(jìn)制或十六進(jìn)制數(shù)。
A.錯(cuò)誤
B.正確
6. C語(yǔ)言程序中,一個(gè)文件中的函數(shù)可以引用存儲(chǔ)在另一個(gè)文件中的函數(shù)和變量。
A.錯(cuò)誤
B.正確
7. 在"文件包含"預(yù)處理語(yǔ)句的使用形式中,#include后面的文件名用""表示直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄。
A.錯(cuò)誤
B.正確
8. (a=3)>(b=5) 是合法的關(guān)系表達(dá)式。
A.錯(cuò)誤
B.正確
9. 一個(gè)C語(yǔ)言程序是由一個(gè)主函數(shù)和若干個(gè)子程序組成的。
A.錯(cuò)誤
B.正確
10. C語(yǔ)言中規(guī)定,if語(yǔ)句的嵌套結(jié)構(gòu)中,else總是和最近的if配對(duì)。
A.錯(cuò)誤
B.正確
11. %x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)。
A.錯(cuò)誤
B.正確
12. 空語(yǔ)句是合法的C語(yǔ)句。
A.錯(cuò)誤
B.正確
13. 數(shù)組的下標(biāo)可以float數(shù)據(jù)類型。
A.錯(cuò)誤
B.正確
14. 一個(gè)可執(zhí)行的C語(yǔ)言程序總是從main()函數(shù)的入口地址處開(kāi)始執(zhí)行。
A.錯(cuò)誤
B.正確
15. 宏替換不占編譯時(shí)間,只占運(yùn)行時(shí)間。
A.錯(cuò)誤
B.正確