西交《程序設(shè)計基礎(chǔ)(高起專)》在線作業(yè)
一、單選題 (共 20 道試題,共 40 分)
1.C語言中,定義結(jié)構(gòu)體的保留字是()
A.union
B.struct
C.enum
D.typedef
2.C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()
A.^
B.%
C.!
D.>
3.int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 則a的值為()
A.1
B.2
C.3
D.不一定
4.結(jié)構(gòu)體類型的定義允許嵌套是指()
A.成員是已經(jīng)或正在定義的結(jié)構(gòu)體型
B.成員可以重名
C.結(jié)構(gòu)體型可以派生
D.定義多個結(jié)構(gòu)體型
5.邏輯運(yùn)算符兩側(cè)運(yùn)算對象的數(shù)據(jù)類型()
A.只能是0或1
B.只能是0或非0正數(shù)
C.只能是整型或字符型數(shù)據(jù)
D.可以是任何類型的數(shù)據(jù)
6.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
7.若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;則輸出結(jié)果不為5的語句為()
A.printf("%d",*(a+5));
B.printf("%d",p[5]);
C.printf("%d",*(p+5));
D.printf("%d",*p[5]);
8.設(shè) int x=1, y=1; 表達(dá)式(!x||y--)的值是()
A.0
B.1
C.2
D.-1
9.設(shè)變量a是整型,f是實(shí)型,i是雙精度型,則表達(dá)式10+'a'+i*f值的數(shù)據(jù)類型為()
A.int
B.float
C.double
D.不確定
10.下列程序的輸出結(jié)果是()。 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b); }
A.a=1,b=0
B.a=2,b=1
C.a=1,b=1
D.a=2,b=2
11.下列選項中正確的語句組是()
A.char s[8]; s={"Beijing"};
B.char *s; s={"Beijing"};
C.char s[8]; s="Beijing";
D.char *s; s="Beijing";
12.以下不能正確定義二維數(shù)組的選項是()
A.int a[2][2]={{1},{2}};
B.int a[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
D.int a[2][]={{1,2},{3,4}};
13.以下數(shù)值中,不正確的八進(jìn)制數(shù)或十六進(jìn)制數(shù)是()
A.0x16
B.16
C.-16
D.0xaaaa
14.以下敘述正確的是()
A.在C程序中,main函數(shù)必須位于程序的最前面
B.C程序的每行中只能寫一條語句
C.C語言本身沒有輸入輸出語句
D.在對一個C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤
15.以下敘述中正確的是()
A.C語言的源程序不必通過編譯就可以直接運(yùn)行
B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行
D.C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯
16.以下選項中,與k=n++完全等價的表達(dá)式是()
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
17.以下運(yùn)算符中,優(yōu)先級最高的運(yùn)算符是()
A.*=
B.>=
C.(類型)
D.+
18.用戶定義的函數(shù)不可以調(diào)用的函數(shù)是()
A.非整型返回值的
B.本文件外的
C.main函數(shù)
D.本函數(shù)下面定義的
19.用下列語句定義a,b,c,然后執(zhí)行b=a、c='b'+b,則b,c的值是()。 long a=0xffffff; int b; char c;
A.0ffffff 和0x61
B.-1和98
C.-1和97
D.指向同一地址
20.在調(diào)用函數(shù)時,如果實(shí)參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是()
A.地址傳遞
B.單向值傳遞
C.由實(shí)參傳給形參,再由形參傳回實(shí)參
D.傳遞方式由用戶指定
二、多選題 (共 20 道試題,共 40 分)
21.定義語句:int x,y;若要通過scanf("%d,%d",&x,&y); 語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,正確的有()
A.11 12
B.11,12
C.11,12
D.11, 12
22.對do-while語句描述正確的是()
A.do-while語句構(gòu)成的循環(huán)可以使用break語句退出循環(huán)
B.do-while語句構(gòu)成的循環(huán)必須使用break語句退出循環(huán)
C.do-while語句構(gòu)成的循環(huán),當(dāng)while中的表達(dá)式值為非零時結(jié)束循環(huán)
D.do-while語句構(gòu)成的循環(huán),當(dāng)while中的表達(dá)式值為零時結(jié)束循環(huán)
23.若a,b,c,d都是int型變量且初值為0,以下選項中正確的賦值語句是()
A.a=b=c=d=100;
B.d++;
C.c+b;
D.d=(c=22)-(b++);
24.若以下選項中的變量已正確定義,則不正確的賦值語句是()
A.x1=26.8%3
B.x=3*x+x
C.x3=0x12
D.x4=1+2=3;
25.設(shè)有以下定義 int a=0; double b=1.25; char c='A'; #define d 2 則下面語句中正確的是()
A.a++;
B.b++;
C.c++;
D.d++;
26.下列選項中是C語言合法標(biāo)志符的有()
A.good_morning
B.main
C.stdio.h
D.8abc
27.以下4個選項中,可以看作是一條語句的有()
A.{;}
B.a=0,b=0,c=0;
C.if(a>0);
D.if(b==0) m=1;n=2;
28.C語言中三種基本的類型為()
A.int
B.char
C.float
D.struct
29.以下描述正確的是()
A.調(diào)用函數(shù)時,實(shí)參可以是表達(dá)式
B.調(diào)用函數(shù)時,實(shí)參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將為形參分配內(nèi)存單元
D.調(diào)用函數(shù)時,實(shí)參與形參的類型必須一致
30.以下敘述正確的是( )
A.C語言嚴(yán)格區(qū)分大小寫英文字母
B.C語言用";"作為語句分隔符
C.C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句也可以寫在幾行上.
D.可以使用/*…*/對C程序中的任何部分作注釋
31.以下敘述正確的是( )
A.預(yù)處理命令行都必須以"#"開始
B.在程序中凡是以"#"開始的語句行都是預(yù)處理命令行
C.C程序在執(zhí)行過程中對預(yù)處理命令行進(jìn)行處理
D.#define ABCD是正確的宏定義
32.若以下選項中的變量已正確定義,則不正確的賦值語句是()。
A.int
B.x=3*x+x
C.x3=0x12
D.x4=1+2=3;
33.以下選項中,合法的字符常量是()
A.\t'
B.'\17'
C."n"
D.'\xaa'
34.以下選項中不合法的字符常量是()
A."B"
B.'\010'
C.68
D.D
35.下列對邏輯運(yùn)算符兩側(cè)的運(yùn)算對象的數(shù)據(jù)類型描述不正確的是()。
A.只能是0或1
B.只能是0或非0正數(shù)
C.a>=10
D.可以是任何類型的數(shù)據(jù)
36.以下選項中合法的表達(dá)式是()
A.0<=x<100
B.i=j==0
C.(char)(65+3)
D.x+1=x+1
37.以下用戶標(biāo)識符,其中合法的是()
A.return
B.f2_G3
C.A3-3
D.abc
38.能正確表示邏輯關(guān)系:"a≥10"的C語言表達(dá)式是()。
A.a≥10
B.!(a<10)
C.a>=10
D.x4=1+2=3;
39.在定義int a[2][3];之后,對a的引用正確的有()
A.a[0][2]
B.a[1,3]
C.a[1>2][!1]
D.a[2][0]
40.正確的if語句形式是()
A.if (x>y && x!=y);
B.if (x==y) x+=y;
C.if (x!=y) scanf("%d",&x) else scanf("%d",&y);
D.if (x<y) {x++;y++;}
三、判斷題 (共 10 道試題,共 20 分)
41.break語句可用于switch語句,也可用于for、while和do循環(huán)語句中。( )
42.C程序中的每一行就是一個語句。( )
43.C語言的文件存取方式只能是順序存取,不能隨機(jī)存取。( )
44.C語言中,feof函數(shù)用來判斷即將讀入的是否是文件結(jié)束標(biāo)志,它可用于二進(jìn)制文件,但不能用于文本文件。( )
45.若定義char *str;則str="BOOK";是正確的。( )
46.數(shù)組類型不是C的基本數(shù)據(jù)類型,而是一種構(gòu)造類型 。( )
47.一個C源程序可以由一個main()函數(shù)和若干個其它函數(shù)組成。( )
48.一個包含命令include可以包含幾個頭檔。( )
49.在某種意義上,char和int通用。( )
50.自增運(yùn)算符和自減運(yùn)算符的結(jié)合方向也是“自左向右”。( )