東大22年春學(xué)期《高級語言程序設(shè)計基礎(chǔ)X》在線平時作業(yè)2-00001
試卷總分:100 得分:100
一、單選題 (共 25 道試題,共 100 分)
1.C語言中字符型(char)數(shù)據(jù)在內(nèi)存中的存儲形式是( )。
A.原碼
B.補碼
C.反碼
D.ASCII碼
2.C語言的編譯系統(tǒng)對宏命令的處理是( )。
A.在對源程序中其它成分正式編譯之前進(jìn)行的
B.和C程序中的其它語句同時進(jìn)行的
C.在程序連接時進(jìn)行的
D.在程序運行時進(jìn)行的
3.以下對二維數(shù)組a的正確說明是( )。
A.int a[3][];
B.float a(3,4);
C.double a[1][4]
D.float a(3)(4);
4.若執(zhí)行下述程序時從鍵盤輸入3 4,則輸出結(jié)果是( )。
#include main( ) { int a,b,s;
scanf("%d%d",&a,&b);
s=a; if (a<b) printf("%d\n",s*s); s=b; }
A.186
B.256
C.324
D.400
5.設(shè)x、y均是int類型變量,且x值為100,則關(guān)于以下for循環(huán)的正確判斷是( )。 for (y=100; x!=y; ++x,y++) printf("****\n");
A.循環(huán)體只執(zhí)行一次
B.是無限循環(huán)
C.循環(huán)體一次都不執(zhí)行
D.for語句中存在語法錯誤
6.以下在任何情況下計算兩數(shù)積時都不會引起二義性的宏定義是( )。
A.#define MUL(x,y) x*y
B.#define MUL(x,y) (x)*(y)
C.#define MUL(x,y) (x*y)
D.#define MUL(x,y) ((x)*(y))"
7.對兩個數(shù)組a和b進(jìn)行如下初始化 char a[]="ABCDEF"; char b[]={'A','B','C','D','E','F'}; 則以下敘述正確的是( )。
A.a與b數(shù)組完全相同
B.a與b長度相同
C.a和b中都存放字符串
D.a數(shù)組比b數(shù)組長
8.C語言允許函數(shù)值類型的缺省定義,此時該函數(shù)值隱含的類型是( )。
A.float
B.int
C.long
D.double
9.以下對C語言中共用體類型數(shù)據(jù)的敘述正確的是( )。
A.可以對共用體變量名直接賦值
B.一個共用體變量中可以同時存放其所有成員
C.一個共用體變量中不能同時存放其所有成員
D.共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員
10.已知 long i=32768;執(zhí)行語句printf("%d",i);屏幕顯示( )。
A.-1
B.-32768
C.1
D.32768
11.以下能對一維數(shù)組a進(jìn)行正確初始化的語句是( )。
A.int a[10]=(0,0,0,0,0);
B.int a[10]={ };
C.int a[]={0};
D.int a[10]=(10*1);
12.下列程序的輸出結(jié)果是( )。 #include void fun(); void main() { int x=1; if(x= =1) { int x=2; printf(“%d”,++x); } void fun() { printf(“%d”,x++);}
A.2,1,1
B.1,2,1
C.2,2,2
D.2,2,1"
13.若二維數(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
14.若有說明:int a[][4]={0,0};則下面不正確的敘述是( )。
A.數(shù)組a中的每個元素都可得到初值0
B.二維數(shù)組a的第1維大小為1
C.因為二維數(shù)組a中第二維大小的值除以初值個數(shù)的商為1,故數(shù)組a的行數(shù)為1
D.只有數(shù)組元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
15.已知學(xué)生記錄描述如下,下面對結(jié)構(gòu)體成員"computer"的賦值方式正確的是( )。 struct student { int num; char name[8]; struct { float math; float engl; float computer; } mark;} std;
A.student.computer=84;
B.mark.computer=84;
C.std.mark.computer=84;
D.std.computer=84;
16.設(shè)有定義:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的運算是( )。
A.p++;
B.a--;
C.b++;
D.c--;
17.若有說明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,則以下敘述正確的是( )。
A.*pc[0]代表的是字符串"aaa
B.*pc[0]代表的是字符'a'
C.pc[0]代表的是字符串"aaa"
D.pc[0]代表的是字符'a'
18.以下為一維整型數(shù)組a的正確說明是( )。
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
D.#define SIZE 10;int a[SIZE];
19.若a和b均為int型變量,則執(zhí)行以下程序斷后x的輸出是( )。 x=15;y=15;printf("%d\n",x%=(y%=2));
A.0
B.1
C.6
D.12
20.以下程序段的執(zhí)行結(jié)果是( )。 int x=-3; do { printf("%d\n", x++); }while(!x);
A.-3
B.-2
C.-1
D.陷入死循環(huán)
21.以下不正確的定義語句是( )。
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'};"
22.以下運算正確的程序段是( )。
A.char str1[]="ABCDE", str2[]="abcdef"; strcpy(str1, str2);
B.char str[10], *st="abcde"; strcat(str, st);
C.char *st1="ABCDS", *st2="abcde"; strcat(st1,st2);
D.char str[10]="", *st="abcde"; strcat(str, st);"
23.下面程序段的運行結(jié)果是( )。 char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]);
A.空格
B.\0
C.e
D.f
24.定義如下變量和數(shù)組:int k; int a[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結(jié)果是( )。for(k=0;k<3;k++) printf("%d",a[k][2-k]);
A.3 5 7
B.3 6 9
C.1 5 9
D.1 4 7
25.設(shè)c1、c2均是char類型變量,則以下不正確的函數(shù)調(diào)用是( )。
A.scanf("c1=%cc2=%c",&c1,&c2);
B.getchar( )
C.putchar(c2);
D.putchar(c1,c2)"