一.单选题题库
1.以下不正确的C语言标识符是(  )。
  A. ABC  B. abc  C. a_bc    D. ab.c
2.C程序是由    构成的。
A. 主程序与子程序
B. 主函数与若干子函数
数组全部赋值为1
C. 一个主函数与一个其它函数
D. 主函数与子函数
3.以下说法中正确的是:        。
A. 在C语言中,实参与其对应的形参各占独立的存储单元;
B.    在C语言中,实参与其对应的形参共占同一个存储单元;
C.    在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;
D. 在C语言中,形参是虚拟的,不占存储单元。
4.设n=3;则n++的结果是(  )。
A. 2  B. 3  C. 4    D. 5
5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(  )。
  A. 0  B. 1  C. 2    D. 3
6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是(  )。
  A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)
7.在while(x)语句中的x与下面条件表达式等价的是:        。
A. x= =0  B. x= =1  C.  x!=1  D.  x!=0
8.若有以下说明和语句:
  struct worker
  {
int no;
char *name;
  }work, *p=&work;
  则以下引用方法不正确的是(  )。
  A.   B. (*p).no  C. p->no    D. work->no
9.以下对二维数组进行正确初始化的是(  )。
A.    int a[2][3]={{1,2},{3,4},{5,6}}; 
B.    int a[][3]={1,2,3,4,5,6}; 
C.    int a[2][]={1,2,3,4,5,6};
D.    int a[2][]={{1,2},{3,4}};
10.二维数组a有m列,则在a[i][j]之前的元素个数为:        。
A)    j*m+i       
B)    i*m+j       
C)    i*m+j-1       
D) i*m+j+1
11.假设已定义char a[10]和char *p=a, 下面的赋值语句中,正确的是:
          A) a[10]=”Turbo C”;    B) a=”Turbo C”;
C) *p=”Turbo C”;      D) p=”Turbo C”;
12.下面关于运算符优先顺序的描述中正确的是: 
A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
13、以下正确的描述是。
A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时, 只能使用goto语句
14、用8位无符号二进制数能表示的最大十进制数为
A) 127    B) 128    C) 255    D)256 
15、下列叙述中正确的是:
A)    C语言中既有逻辑类型也有集合类型 
B)    C语言中没有逻辑类型但有集合类型
C)C语言中有逻辑类型但没有集合类型
D) C语言中既没有逻辑类型也没有集合类型 
16、以下对C语言函数的有关描述中,正确的是:
A)调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B)函数既可以嵌套定义又可以递归调用
    C)函数必须有返回值,否则不能使用函数
D) 程序中有调用关系的所有函数必须放在同一个源程序文件中
                 
17、在C语言中,不正确的int类型的常数是:         
A) 32768    B)0      C) 037      D) 0xaf
18、以下叙述中不正确的是:                 
    A)在不同的函数中可以使用相同名字的变量
    B)函数中的形式参数是局部变量
    C)在一个函数内定义的变量只在本函数范围内有效
    D)在一个函数内的复合语句中定义的变量在本函数范围内有效
19、以下说法中正确的是: 
    A)#define和printf都是C语句   
B)#define是C语句,而printf不是
    C)printf是C语句,但#define不是 
D)#define和printf都不是C语句
20、若有以下定义和语句:double r=99,*p=&r; *p=r;则以下正确的叙述是:
    A)以下两处的*p含义相同,都说明给指针变量p赋值
    B)在“double r=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元
    C)语句“*p=r;”把变量r的地址值赋给指针变量p
    D)语句“*p=r;”取变量r的值放回r中
21.C语言中基本数据类型包括(  )。
A. 整型、实型、逻辑型   
B. 整型、实型、字符型
  C. 整型、字符型、逻辑型 
D. 整型、实型、逻辑型、实型
22.已知 int  i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是( )。
A.    6  B.  12  C.  30    D.  36
23.C语言中规定函数的返回值的类型是由( )。
A.    return语句中的表达式类型所决定
B.    调用该函数时的主调用函数类型所决定
C.    调用该函数时系统临时决定
D.    在定义该函数时所指定的函数类型所决定
24.不能进行++和--运算的数据类型是( )。
  A. 指针  B. double  C.  int    D. long   
25.为了判断两个字符串s1和s2是否相等,应当使用(    )。
    A.  if(s1==s2)      B.  if(s1=s2)     
C.  if(strcpy(s1,s2))    D  if (strcmp(s1,s2))
26.若有以下说明和语句:
  struct stu
        {int no;
char *name;
          }student, *p=&student;
  则以下引用方法不正确的是(  )。
    A.     B. (*p).no 
  C. p->no        D. student->no
27.以下不是死循环的语句为(  )。
A.    for(; ; x+=k); 
B.    while(1){x++}; 
C.    for(k=10; ;k--)sum+=k;
D.    for(;(c=getchar())!=’\n’;)printf(“%c”,c);
28.以下错误的描述是(  )。                           
A. 不同的函数中可以使用相同的变量名
B. 形式参数是局部变量
C. 一个函数内部定义的变量只能在本函数范围内有效 
D. 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效
29.若用数组名作为函数调用时实参,则实际上传递给形参的是( )。
A.数组首地址    B. 数组的第一个元素值
C.数组中全部元素的值  D. 数组元素的个数
30.已知 int a,*p=&a; 则为了得到变量a的值,下列错误的表达式是()。
A. *&p  B.*p  C. p[0]  D.*&a
31.以下能对外部的二维数组a进行正确初始化的语句是:        。
A) int a[2][] = {{1,0,1},{5,2,3}};
B) int a[][3] = {{1,2,1},{5,2,3}};

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。