C语言题库.docx

上传人:b****5 文档编号:5571845 上传时间:2022-12-27 格式:DOCX 页数:37 大小:31.83KB
下载 相关 举报
C语言题库.docx_第1页
第1页 / 共37页
C语言题库.docx_第2页
第2页 / 共37页
C语言题库.docx_第3页
第3页 / 共37页
C语言题库.docx_第4页
第4页 / 共37页
C语言题库.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C语言题库.docx

《C语言题库.docx》由会员分享,可在线阅读,更多相关《C语言题库.docx(37页珍藏版)》请在冰豆网上搜索。

C语言题库.docx

C语言题库

一、判断题(每题1分)

1.函数即可以嵌套定义,又可以嵌套调用.(×)

2.unsigned和void在C中都是保留字.(√)

3.表达式++i表示对变量i自加1.(√)

4.C语言源程序的基本结构单位是main函数.(×)

5.字符常量的长度肯定为1.(√)

6.chara[]={'a','b','c'};charb[]={"abc"};数组a和数组b占用的内存空间大小不一样.(√)

7.若有inti=10,,j=2;则执行完i*=j+8;后i的值为28.(×)

8.inti,*p=&i;是正确的C说明。

(√)

9.While循环语句的循环体至少执行一次.(×)

10.有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0.(√)

11.7&3+12的值是15.(×)

12.C语言本身不提供输入输出语句,输入和输出操作是由函数来

实现的.(√)

13.若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真".(√)

14.在C语言中,整型数据在内存中占2个字节.(×)

15.对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的.(×)

16.break语句可用于循环体内,它将退出该重循环.(√)

17.将一个字符串"abc"赋给字符串变量str的方法是str="abc"..(×)

18.参加位运算的数据可以是任何类型的数。

(×)

19.C语言规定:

在一个源程序中,main函数的位置必须在最开始.(×)

20.静态外部变量只在本文件内可用.(√)

21.若有宏定义:

#defineS(a,b)t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的.(×)

22.字符串只能存放在字符型数组中.(√)

23.若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真".(√)

24.在标准C中,"="是判断两个数是否相等.(×)

25.函数调用可以出现在执行语句中,但不能出现在表达式中.(×)

26.break语句可用于循环体内,它将退出该重循环.(√)

27.strcat(s1,s2)函数是将字符串s1复制到字符串s2中.(×)

28.函数若无返回值,则它一定无形参。

(×)

29.C语言是一种结构化程序设计语言.(√)

30.静态外部变量只在本文件内可用.(√)

31.关系运算符<=与==的优先级相同.(×)

32.C语言中的整型常量有3种表示方法.(√)

33.C语言中只能逐个引用数组元素而不能一次引用整个数组.(√)

34.char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl".(×)

35.静态变量和外部变量都是全局变量,它们的存储是静态的.(×)

36.共同体变量所占的内存长度等于最长的成员的长度。

(√)

37.由于主函数首部经常缩写成main(),所以它不可能有形式参数.(×)

38.通过return语句,函数可以带回一个或一个以上的返回值。

(×)

39.C语言俗称"低级语言的高级形式",这说明C语言的功能不强.(×)

40.程序进行编译时,不为形式参数分配存储空间.(√)

41.C语言的当型循环是先执行循环后判断条件.(×)

42."++"运算符的优先级比"+"运算符的优先低.(×)

43.指针就是地址,因此一个变量的指针就是该变量的地址.(√)

44.在if语句中,else前一个语句可不加";"(×)

45.return后面括号里的表达式的值即是此函数的值.(√)

46.chara[]={'a','b','c'};charb[]={"abc"};数组a和数组b占用的内存空间大小不一样.(√)

47.结构体类型只有一种。

(×)

48.在任何情况下,对二维数组的初始化都可以省略第一维的大小。

(×)

49.结构化程序设计所规定的三种基本控制结构是顺序、选择、输出.(×)

50.有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0.(√)

二、单项选择题(每题2分)

1.C语言中运算对象必需是整型的运算符是( A )

A.%B./C.!

D.*

2.C程序的执行是从(A)

A本程序的main函数开始,到main函数结束

B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C本程序的main函数开始,到本程序文件的最后一个函数结束

D本程序文件的第一个函数开始,到本程序main函数结束

3.以下选项中,(D)是不正确的C语言字符型常量。

A.'a'B.'\x41'C.'\101'D."a"

4.以下程序的输出结果是(C)

A.0   B.1     C.3   D.不确定的值

    #include

main()

     {intx=10,y=3;

     printf(“%d\n”,y=x/y);}

5.以下对二维数组a的正确说明是(C)

A.inta[3][]B.floata(3,4)

C.doublea[1][4]D.floata(3)(4)

6.字符串"ABC"在内存占用的字节数是(B)。

A.3B.4C.6D.8

7.下列运算符中优先级最高的运算符是(A)

   A.!

B.%C.-=D.&&

8.以下程序的输出结果是(A)

A.1B.2C.3D.4

#include

main()

{intw=4,x=3,y=2,z=1;

printf(“%d\n”,(w

w:

z

z:

x));}

9.以下叙述正确的是(D)

A. do-while语句构成的循环不能用其他语句构成的循环代替.

B. do-while语句构成的循环只能用break语句退出

C. 用do-while语句构成循环时,只有在while后的表达式为非零时结束循环

D. 用do-while语句构成循环时,只有在while后的表达式为零时结束循环

10.在定义一个结构体变量时,系统分配给它的内存是(D)。

A.结构体中第一个成员所需内存量

B.结构体中最后一个成员所需内存量

C.成员中占内存量最大者所需容量

D.各成员所需内存量的总和

11.若有下列定义,则对a数组元素地址的正确引用是(C).

inta[5],*p=a;

A.*(p+5)B.*p+2

C.*(a+2)D.*&a[5]

12.下列定义不正确的是(C)。

A.#definePI3.141592B.#defineS345

C.intmax(x,y);intx,y;{}D.staticcharc;

13.在C语言中,形参的缺省存储类是(A)。

A.autoB.register

C.staticD.extern

14.以下函数调用语句中实参的个数是(A).

exce((v1,v2),(v3,v4,v5),v6);

A.3B.4C.5D.6

15.以下描述中,正确的是(C)

A.预处理是指完成宏替换和文件包含中指定的文件的调用

B.预处理指令只能位于C源文件的开始

C.C源程序中凡是行首以#标识的控制行都是预处理指令

D.预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备

16.以下字符中不是转义字符的是(C)

A.\aB.\bC.\cD.\\

17.C语言程序中必须有的函数是(B)

A.#include"stdio.h"B.main

C.printfD.scanf

18.有定义:

inta=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为( B  )

A.1.4   B.1   C.2.0   D.2

19.以下程序的输出结果是(D)

A.i=2,,j=1,k=3B.i=1,,j=1,k=2  C.i=4,,j=2,k=4   D.i=1,j=1,k=3

#include

main()

{inti,j,k,a=3,b=2;

i=(--a==b++)?

--a:

++b;

j=a++;k=b;

printf("i=%d,j=%d,k=%d\n",i,j,k);

}

20.下列选项中正确的语句组是(D)。

A.chars[8];s={"Beijing"};

B.char*s;s={"Beijing"};

C.chars[8];s="Beijing";

D.char*s;s="Beijing";

21.若已定义x为int类型变量,下列语句中说

明指针变量p的正确语句是( C  ).

A.intp=&x;   B.int*p=x;   C.int*p=&x;  D.*p=*x;

22.sizeof(float)是( C  ).

A.一种函数调用      B.一个不合法的表达式

C.一个整型表达式     D.一个浮点表达式

23.已知year为整型变量,不能使表达式(year%4==0&&year%100!

=0)||year%400==0的值为"真"的数据是( A ).

A.1990      B.1992     C.1996    D.2000

24.下面有关for循环的正确描述是(D)

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

25.在位运算中,操作数每右移一位,其结果相当于( B ).

A.操作数乘以2      B.操作数除以2

C.操作数乘以16        D.操作数除以16

26.以下能对二维数组a进行正确初始化的语句是( B )。

A.inta[2][]={{1,0,1},{5,2,3}};

B.inta[][3]={{1,2,3},{4,5,6}};

C.inta[2][4]={{1,2,3},{4,5},{6}};

D.inta[][3]={{1,0,1}{},{1,1}};

27.C语言中的文件的存储方式有(  C )。

A.只能顺序存取         B.只能随机存取(或直接存取)

C.可以顺序存取,也可随机存取  D.只能从文件的开头进行存取

28.以下只有在使用时才为该类型变量分配内存的存储类说明是(  B )。

A.auto和staticB.auto和register

C.register和staticD.extern和register

29.关于return语句,下列正确的说法是(C).

A.在主函数和其他函数中均可出现   B.必须在每个函数中出现

C.可以在同一个函数中出现多次    D.只能在除主函数之外的函数中出现一次

30.以下叙述中不正确的是(  C  ).

A.预处理命令行都必须以#号开始

B.在程序中凡是以#号开始的语句行都是预处理命令行

C.C程序在执行过程中对预处理命令行进行处理

D.以下是正确的宏定义#define  IBM_PC

31.一个C语言程序是由(C)组成的。

    A.主程序     B.子程序     C.函数       D.过程

32.判断char型变量c1是否为小写字母的最简单且正确的表达式为(D)。

A.'a'<=c1<='z'                         B.(c1>=a)&&(c1<=z)

 C.('a'<=c1)||('z'>=c1)                 D.(c1>='a')&&(c1<='z')

33.为了判断两个字符串s1和s2是否相等,应当使用(D)。

    A.if(s1==s2)                     B.if(s1=s2)

      C.if(strcpy(s1,s2))             D.if(strcmp(s1,s2)==0)

34.设a,b都是int型变量,则表达式:

(a=2,b=5,a>b?

a++:

b++,a+b)的值为(B)。

A.7                B.8                  C.9            D.2

35.设x、y和t均为int型变量,则以下语句:

t=x;x=y;y=t;的功能是(D)。

A.把x和y按从大到小排列   B.把x和y按从小到大排列

C.无确定结果               D.交换x和y中的值

36.下面标识符中,合法的用户标识符为(D)。

A.P#Ad               B.12a           C.char              D._int

37.循环语句while(!

E);中的表达式!

E等价于(C)。

A.E!

=0            B.E!

=1          C.E==0           D.E==1

38.设有以下语句,则(A)不是对a数组元素的正确引用,其中0≤i<10。

       int        a[10]={0,1,2,3,4,5,6,7,8,9};

       int        *p=a;

   供选择的答案是:

   A.a[p-5]                          B.*(&a[i])

   C.p[i]                            D.*(a+i)

39.若用数组名作为函数调用的实参,传递给形参的是 (A)。

  A.数组的首地址                      B.数组第一个元素的值

  C.数组中全部元素的值                D.数组元素的个数

40.在一个文件中定义的全局变量的作用域为(D)。

   A.本程序的全部范围;               B.本文件的全部范围;

   C.函数内的全部范围;               D.从定义该变量的位置开始到文件结束。

41.以下语句中,指针s所指字符串的长度为(A)。

   char*s=”\\Hello\tWorld\n”;   

A.13            B.12  C.14            D.10

42.若调用一个函数,且此函数中没有return语句,则正确的说法是:

该函数(D)。

A.没有返回值                    B.返回若干个系统默认值

C.能返回一个用户所希望的函数值     D.返回一个不确定的值

43.以下只有在使用时才为该类型变量分配内存的存储类说明是(  B )。

A.auto和staticB.auto和register

C.register和staticD.extern和register

44.关于return语句,下列正确的说法是(C).

A.在主函数和其他函数中均可出现   B.必须在每个函数中出现

C.可以在同一个函数中出现多次    D.只能在除主函数之外的函数中出现一次

45.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为(B)。

structstudent

{  charname[20];

         intage;

   charsex;

}stu[5],*p;

p=stu;

      A.scanf("%s",stu[0].name);      B.scanf("%d",p->age);

      C.scanf("%c",&(p->sex));        D.scanf("%d",&stu[0].age);

46.若x、y、j和k都是int型变量,则计算表达式x=(k=32,j=6,i=4)后,x的值为(C)。

A.4B.16C.32D.52

47.C语言中标识符只能由字母、数字和下划线组成,且第一个字符(B)。

A.必须为字母B.必须为字母或下划线

C.必须为下划线D.可以是字母、数字和下划线中任一种字符

48.在C语言中,引用数组元素时,其数组下

标的数据类型允许是(C)。

A.整型常量B.整型表达式

C.整型常量或整型表达式D.任何类型的表达式

49.执行下列语句后的输出为(A)。

intj=-1;

if(j<=1)printf("****\n");

elseprintf("%%%%\n");

A.****B.%%%%C.%%%%cD.有错,执行不正确

50.以下各选项企图说明一种新的类型名,其中正确的是(C)。

A.typedefv1int;B.typedefv2=int;

C.typedefintv3;D.typedefv4:

int;

51.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).

A.c='a';B.c="a";C.c="97";D.C='97'

52.用户定义的函数不可以调用的函数是(C)。

A.非整型返回值的    B.本文件外的

C.main函数       D.本函数下面定义的

53.与实际参数为实型数组名相对应的形式参数不可以定义为(  C ).

A.floata[];   B.float*a;   C.floata;  D.float(*a)[3];

54.下列程序段的输出结果为( C ).

inta=7,b=9,t;

t=a*=a>b?

a:

b;

printf("%d",t);

A.7     B.9    C.63     D.49

55.若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为( A )。

A.scanf("%d",p);  B.scanf("%d",&p);  C.scanf("%d",*p);   D.scanf("%d",**p);

56.以下描述中正确的是(  C ).

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作

D.do-while循环中,根据情况可以省略while

57.在位运算中,操作数每左移一位,其结果相当于( A )。

A.操作数乘以2      B.操作数除以2

C.操作数除以4      D.操作数乘以4

58.以下只有在使用时才为该类型变量分配内存的存储类说明是(  B )。

A.auto和staticB.auto和register

C.register和staticD.extern和register

59.若chara[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是(D).

A.gets(a);B.scanf("%s",a);

C.for(i=0;i<10;i++)a[i]=getchar();D.a=getchar();

60.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为(B)。

structstudent

{  charname[20];

         intage;

   charsex;

}stu[5],*p;

p=stu;

      A.scanf("%s",stu[0].name);      B.scanf("%d",p->age);

      C.scanf("%c",&(p->sex));        D.scanf("%d",&stu[0].age);

61.以下标识符中,不能作为合法的C用户定义标识符的是(C).

A.answerB.toC.signedD._if

62.以下数组定义中不正确的是(D).

A.inta[2][3];B.intb[][3]={0,1,2,3};

C.intc[100][100]={0};D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

63.设有说明:

charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为(D)。

A.floatB.charC.intD.double

64.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(B)。

A.8B.23C.17D.6

65.以下正确的说法是:

在C语言中(A).

A:

实参和与其对应的形参各占用独立的存储单元

B:

实参和与其对应的形参共占用一个存储单元

C:

只有当实参和与其对应的形参同名时才共占用存储单元

D:

形参是虚拟的,不占用存储单元

66.经过以下语句定义后,表达式z+=x>y?

++x:

++y的值为(C).

intx=1,y=2,z=3;

A.2B.3C.6D.5

67.若有说明:

inta[][4]={0,0};则下面不正确的叙述是(  D ).

A.数组a的每个元素都可得到初值0   B.二维数组a的第一维大小为1

C.因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1

D.有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

68.以下对枚举类型名的定义中正确的是( B )。

A.enuma={sum,mon,tue};     B.enuma{sum=9,mon=-1,tue};

C.enuma={"sum","mon","tue"};  D.enuma{"sum","mon","tue"};

69.putchar函数可以向终端输出一个(  D )。

A.整型变量表达式值      B.实型变量值

C.字符串           D.字符或字符型变量值

70.在定义一个结构体变量时,系统分配给它的内存是(D)。

A.结构体中第一个成员所需内存量

B.结构体中最后一个成员所需内存量

C.成员中占内存量

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1