C語言考試

1、程序char c[5]={‘a’,’b’,’’,’c’,’’}; printf(“%s”,c);的運行結果是:
答案:(D)
 A、'a''b'
 B、ab
 C、ab c
 D、ab

2、以下程序的輸出結果是:#include main(){  int a=2,c=5;  printf("a=%%d,b=%%d ",a,c);}
答案:(D)
 A、a=%2,b=%5
 B、a=2,b=5
 C、a=%%d,b=%%d
 D、a=%d,b=%d

3、有以下程序:main(){  int y=10;  while(y--) ;   printf(“y=%d ”,y);}程序執行後的輸出結果是:
答案:(B)
 A、y=0
 B、y=-1
 C、y=1
 D、while構成無限循環

4、下列程序的輸出結果是:main( ) {  int a=7,b=5;   printf("%d ",b=b/a);}
答案:(C)
 A、5
 B、1
 C、0
 D、不確定值

5、設有說明:char w;int x;float y;double z;則表達式w*x+z-y值的數據類型爲:
答案:(D)
 A、float
 B、char
 C、int
 D、double

6、x、y、z被定義爲int型變量,若從鍵盤給x、y、z輸入數據,正確的輸入語句是:
答案:(B)
 A、INPUT x、y、z;
 B、scanf("%d%d%d",&x,&y,&z);
 C、scanf("%d%d%d",x,y,z);
 D、read("%d%d%d",&x,&y,&z);

7、設變量x和y均已經正確定義並賦值。以下if語句中,在編譯時將產生錯誤信息的是:
答案:(C)
 A、if(x++);
 B、if(x>y &&y!=0)x++;
 C、if(x>0) x-- else y++;
 D、if(y<0){;} else x++;

8、以下程序的輸出結果是:main(){  int a,b,d=241;  a=d/100%9;  b=(-1)&&(-1);  printf("%d,%d ",a,b);}
答案:(B)
 A、6,1
 B、2,1
 C、6,0
 D、2,0

9、判斷字符串a是否大於b,應當使用:
答案:(D)
 A、if (a>b)
 B、if (strcmp(a,b))
 C、if (strcmp(b,a)>0)
 D、if (strcmp(a,b)>0)

10、下列說法中正確的是:
答案:(D)
 A、一個數組能夠存儲許多不同類型的值
 B、數組的下標可以是float數據類型
 C、如果初始化值列表中的個數少於數組的元素的個數,C編譯器會自動補齊
 D、初始化值列表中的值的個數多於數組元素的個數是錯誤的

11、表示關係12<=x<=y的C語言表達式爲:
答案:(B)
 A、(12<=x)&(x<=y)
 B、(12<=x)&&(x<=y)
 C、(12<=x)|(x<=y)
 D、(12<=x)||(x<=y)

12、按照c語言規定的用戶標識符命名規則,不能出現在標識符中的是:
答案:(B)
 A、大寫字母
 B、連接符
 C、數字字符
 D、下劃線

13、以下程序的輸出結果爲:main( ){  int i=010,j=10;   printf("%d,%d ",i++,j--);}
答案:(C)
 A、11,9
 B、9,10
 C、8,10
 D、9,9

14、表達式3.6-5/2+1.2+5%2的值是:
答案:(D)
 A、4.3
 B、4.8
 C、3.3
 D、3.8

15、當調用函數時,實參是一個數組名,則向函數傳送的是:
答案:(B)
 A、數組的長度
 B、數組的首地址
 C、數組每一個元素的地址
 D、數組每個元素的值

16、以下說法中正確的是:
答案:(C)
 A、C語言程序中是從第一定義的函數開始執行
 B、在C語言程序中,要調用的函數必須在main()函數中定義
 C、C語言程序總是從main()函數開始執行
 D、C語言程序中的main()函數必須放在程序的開始部分

17、以下定義語句中正確的是:
答案:(C)
 A、char a='A' b='B';
 B、float a=b=10.0;
 C、int a=10,*b=&a;
 D、float *a,b=&a;

18、爲避免嵌套的條件分支語句if…else的二義性,C語言規定,C程序中的else總是與____組成配對關係。
答案:(A)
 A、其上面距它最近的,並且沒有其他else與其配對的if相配對
 B、在同一行上的if
 C、縮排位置相同的if
 D、在其之前未配對的if

19、設a、b、c、d、m、n均爲int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算後,n的值爲:
答案:(C)
 A、0
 B、1
 C、2
 D、3

20、若i爲整型變量,則以下循環執行次數是:for(i=2;i==0;) printf("%d",i--);
答案:(B)
 A、無限次
 B、0次
 C、1次
 D、2次

21、設有說明 int (*ptr)();其中標識符ptr是:
答案:(B)
 A、是一個指向整形變量的指針
 B、是一個指針,它指向一個函數值是int的函數
 C、是一個函數名
 D、定義不合法

22、設 int x=1, y=1; 表達式(!x||y--)的值是:
答案:(B)
 A、0
 B、1
 C、2
 D、-1

23、請讀程序: 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;           }  printf("a=%d,b=%d ",a,b);}
答案:(A)
 A、a=2,b=1
 B、a=1,b=1
 C、a=1,b=0
 D、a=2,b=0

24、有以下程序main(){  int m[][3]={1,4,7,2,5,8,3,6,9};  int i,j,k=2;  for(i=0;i<3;i++){    printf("%d ",m[k][i]);  }}執行後輸出結果是:
答案:(C)
 A、4 5 6
 B、2 5 8
 C、3 6 9
 D、7 8 9

25、若執行下面程序時:int x;scanf("%d",&x);if(x++ > 5){ printf( "%d ",x)};else{ printf("%d ",++x)};從鍵盤上輸入5,則輸出是:
答案:(A)
 A、7
 B、6
 C、5
 D、4

26、已知職工記錄描述如下,在C中,系統爲變量w分配( )字節的空間。struct worker{  int no;  char name[20];  char sex;} w;
答案:(A)
 A、28
 B、20
 C、25
 D、6

27、以下程序的輸出結果是:char s[] = "abcde";s += 2;printf("%d ",s[0]);
答案:(D)
 A、輸出字符a的ASCII碼
 B、輸出字符c的ASCII碼
 C、輸出字符c
 D、程序出錯

28、設有以下定義:#define N 3 #define Y(n) ((N+1)*n)則執行語句:z=2 * (N+Y(5+1));後,z的值爲:
答案:(C)
 A、出錯
 B、42
 C、48
 D、54

29、以下代碼的輸出結果爲:int x = 10,y = 10;for(int i = 0; x > 8; y = ++i){ printf(“%d %d”, x-- , y); }
答案:(D)
 A、10 1 9 2
 B、9 8 7 6
 C、9 10 9 10
 D、10 10 9 1

30、設變量定義爲int x , *p = &x;則&(*p)相當於:
答案:(C)
 A、*(&x)
 B、*p
 C、p
 D、x

31、在C語言程序中,以下說法正確的是:
答案:(B)
 A、函數的定義可以嵌套,但函數的調用不可以嵌套
 B、函數的定義不可以嵌套,但函數的調用可以嵌套
 C、函數的定義和函數的調用都不可以嵌套
 D、函數的定義和函數的調用都可以嵌套

32、如有定義int * p = malloc(15);p當int型數組使用,最多可以使用多少元素:
答案:(A)
 A、3
 B、4
 C、15
 D、16

33、有以下程序main(){  int k=4,n=0;  for(;n < k;)  {    n++;    if(n%3!=0) continue;    k--;  }  printf("%d,%d ",k,n);}程序運行後的輸出結果是:
答案:(C)
 A、1,1
 B、2,2
 C、3,3
 D、4,4

34、以下錯誤的描述是:函數調用可以:
答案:(D)
 A、出現在執行語句中
 B、出現在一個表達式中
 C、做爲一個函數的實參
 D、做爲一個函數的形參

35、動態分配內存,定義一個int型的包含12個元素的數組,如下定義正確的是:
答案:(A)
 A、int *p = malloc(sizeof(int)*12);
 B、int a[12] = malloc(12,sizeof,int);
 C、int a[12] = calloc(12,sizeof(int));
 D、int *p = calloc(sizeof(int)*12)

36、有以下程序main(){  int i;  for(i=1;i<40;i++)  {    if(i++%5==0)    if(++i%8==0)     printf("%d ",i);  }  printf(" ");}執行後的輸出結果是:
答案:(C)
 A、5
 B、24
 C、32
 D、40

37、下面選項中正確的賦值語句是(設 char a[5],*p=a;):
答案:(A)
 A、p="abcd";
 B、a="abcd";
 C、*p="abcd";
 D、*a="abcd";

38、請讀程序:#include f(int b[],int n){  int i,r;  r=1;  for(i=0;i<=n;i++) r=r*b[i];  return r;}main(){  int x,a[]={2,3,4,5,6,7,8,9};  x=f(a,3);  printf("%d ",x);}上面程序的輸出結果是:
答案:(B)
 A、720
 B、120
 C、24
 D、6

39、有以下程序void f(int x,int y){  int t;  if(x < y) {t=x; x=y; y=t;}}main(){  int a=4,b=3,c=5;  f(a,b); f(a,c); f(b,c);  printf("%d,%d,%d ",a,b,c);}執行後輸出結果是:
答案:(D)
 A、3,4,5
 B、5,3,4
 C、5,4,3
 D、4,3,5

40、設有如下定義:struct jan{int a;float b;}c2,*p;若有p=&c2;則對c2中的成員a的正確引用是:
答案:(B)
 A、(*p).c2.a
 B、(*p).a
 C、p->c2.a
 D、p.c2.a

二、判斷題(共10題,每題1分)

1、通過return語句,函數可以帶回一個或一個以上的返回值。
答案:(F)
 正確
 錯誤

2、在循環體內使用break語句和continue語句的作用相同。
答案:(F)
 正確
 錯誤

3、條件運算符?和:是一對運算符,不能分開單獨使用。
答案:(T)
 正確
 錯誤

4、枚舉類型中的元素都具有一個整型值。
答案:(T)
 正確
 錯誤

5、函數strcmp從頭至尾順序地將其對應字符比較,遇到兩個字符不等時,兩個字符相減得到一個int型值,兩個字符串完全相同時,則返回0。
答案:(T)
 正確
 錯誤

6、char *p="girl";的含義是定義字符型指針變量p,p的值是字符串"girl"。
答案:(F)
 正確
 錯誤

7、continue 不是結束本次循環,而是終止整個循環的執行。
答案:(F)
 正確
 錯誤

8、在對二維數組初始化時,不可以省略行數,但能省略列數
答案:(F)
 正確
 錯誤

9、條件表達式不能取代一般if的語句。
答案:(F)
 正確
 錯誤

10、數組名能與其它變量名相同。數組名後是用方括號括起來的常量表達式,不能用圓括號。
答案:(T)
 正確
 錯誤
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章