上海理工大学
上海市计算机二级考试(C语言)复习资料题目
C语言是一种面向过程的程序设计语言,函数、指针、地址和递归概念是它的难点。本复习资料以教学大纲为依据,提供各类题型和练习,重在“基本概念”、“常用算法”、“阅读分析程序”、“编程技能”等诸方面的强化训练,按照上海市计算机二级考试(C语言)的框架,提供“基础知识、读程序写结果、改错、编程序和程序指令填空”几部份,供学生学习参考,文末附习题参考解答。
1. B    2. C    3. C    4. B    5. D    6. A    7. A    8. C    9. C    10. A
11. C    12. A    13. B  14. B  15. C  16. B    17. D    18.B    19. A    20. C
21. C    22. B    23. B  24. C  25. D  26. B    27. B    28. D  29. C    30. C
31. D    32. C    33. C  34. B  35. C  36. D    37. C    38. B  39. C    40. B
41. C    42. B    43. C  44. B  45. B  46. A    47. D  48. D  49. D    50. D
51. A    52. C   
第一部份:基础知识
1. 下述循环的循环次数是() 
江苏十大公务员培训机构int k=2
whilek=0printf"%d"k);
k--printf"\n");
A、无限次        B0            C1              D2
2. 在下列选项中,没有构成死循环的程序段是()
Aint i=100Bfor(;;)
while1
广西贵港市人才网{i=i%100+1
ifi>100break
}
Cint k=1000Dint s=36
do  {++k} whilek>=10000);whiles);--s
3. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是()
  int a[]={0123456789}*pi
  p=a
A*a+i        Ba[p-a]Cp+iD*&a[i]
4. 下面能正确将字符串"Boy"进行完整赋值操作的语句是(B
  Achar s[3]={'B''o''y'}            Bchar s[ ]="Boy"
  Cchar s[3]={"Boy"}                Dchar s[3]
s[0]='B's[1]='o's[2]='y'
5. 以下程序段的输出结果是(D
    char arr[ ]="ABCD"
    char*ptr
    forptr=arrptr<arr+4ptr++
      printf"%s\n"ptr);
  AABCD          B A            C D            D ABCD
                                                                BCD
                                                                CD
                                                                D
6. C语言的auto型变量是(A
  A、存储在动态存储区中。
  B、存储在静态存储区中。
  C、存储在计算机CPU的寄存器中。
  D江西公务员报名时间表2023、存储在外存储器中。
7. 测试文件是否结束函数的函数名是(A
  Afeof            BEOF            Ceof              DFEOF
8. 下面程序段的输出结果是(C
  int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];
  p=a;
  printf(“%d\n”,*(*(p)+2));
  A1B5              C3D7
9. C语言规定:在一个源程序中,main函数的位置是(C
A、必须在最开始                    B、必须在系统调用的函数的后面
C、可以任意                        D、必须在最后
10. 一个C程序的执行是从(A
A、 本程序的main函数开始,到main函数结束
B、 本程序的第一个函数开始,到本程序文件的最后一个函数结束
C、 本程序的main函数开始,到本程序文件的最后一个函数结束
D、 本程序文件的第一个函数开始,到本程序main函数结束
11. 下面的四个选项中,均是不合法的用户标识符的选项是(C
AA BfloatCb-aD_123
P_0              la0                goto                temp
do                _A                int                  INT
12. 下面四个选项中,均是合法转义字符的选项是(A
A’\’’B’\’C’\018’D’\\0’
‘\\’                ‘\017’              ‘\f’                  ‘\101’
‘\n’                ‘\”’                ‘xab’                ‘x1f’
13. sizeof(float)是(B
A、一个双精度型的表达式              B、一个整型表达式
C、一种函数调用                      D、一个不合法的表达式
14. 下述循环的循环次数是(B
int k=2
whilek=0printf"%d"k);
k--printf"\n");
A、无限次        B0            C1              D2
15. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是(C
  int a[]={0123456789}*pi
  p=a
A*a+i        Ba[p-a]Cp+iD*&a[i]
16. 若二维数组am列,则在a[i][j]前的元素个数为(B
  Aj*m+i          Bi*m+j          Ci*m+j-1          Di*m+j+1
17. 对两个数组ab招考公务员条件进行如下初始化
char a[ ]=”ABCDEF”;
char b[ ]={‘A’,’B’,’C’,’D’,’E’,’F’};
则以下叙述正确的是(D
Aab 数组完全相同              Ba b 长度相同
Ca b中都存放字符串            Da数组比b 数组长度长
18. C语言中有关全局变量的说法,正确的是(B高考一本录取分数线2020
  A、在使用到它的所有文件中均需定义
  B、在函数体外定义一次
C、 main函数中定义
D.main函数外定义
19. 公考行测真题试卷若有数组名作为函数调用时的实参,则传递给该函数形参的是(A
  A、数组的首地址                      B、数组的第一个元素的值
  C、数组中全部元素的值                D、数组元素的个数
20. 下面程序段的输出结果是(C
  int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];
  p=a;
  printf(“%d\n”,*(*(p+1)+2));
  A3  B4  C6  D7
21. 不属于C语言程序基本结构的是( C)
A)顺序结构        B)选择结构          C)函数结构        D)循环结构
22. 若有定义及赋值:
int a[6][6]*pp=*a
则下列各式中能表示元素a[0][1]列地址的表达式是 B
A&a[0]+1            Ba[0]+1    C*(p+1)        Dp+1
23. 十进制数123转换成十六进制数是 B
A) 7AH                B) 7BH                C) 7CH                D) 7DH
24. C语言中合法的字符常量是 C
A)'\058'                B)'ab'                C)'\xab'                D) ”\0”
25. 下列字符中,ASCⅡ码值最小的是 D
A)A                B)a                C)0                D)空格
26. 下面程序输出结果是____B_____
main()
{int k=0;char c='A';
do
  { switch(c++)
      { case 'A':k++;break;
        case 'B':k--;
        case 'C':k+=2;break;
        case 'D':k=k%2;continue;
        case 'E':k=k*10;break;
        default:k=k/3;
      }
k++;
}while(c<'G');
printf("k=%d\n",k);
}
A)k=3 B)k=4 C)k=2 D)k=0
27. 设有如下定义:int x=ly=-1;,则语句:printf("%d\n"(x--&&++y));的输出结果是(B)
A)1 B)0 C)-1 D)2
28. C语言规定,函数返回值的类型是由 D