C题库.docx

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

C题库.docx

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

C题库.docx

C题库

选择题:

1在"文件包含"的预处理中,被包含的文件应是___B____。

A)可执行文件B)源文件C)目标文件D)批处理文件

2若file1中包含file2,file2中要用到file3,若file2中没有#include"file3.h"语句,则在file1.c中应进行如下定义__B____。

A)#include"file2.h"和#include"file3.h"

B)#include"file3.h"和#include"file2.h"

C)#include"file2.h","file3.h"D)#include"file2.h,file3.h"

3设有以下宏定义:

#defineN3

#defineY(n)((N+1)*n)

则执行语句z=2*(N+Y(5+1));后,z的值为__C___。

A)出错B)42C)48D)54

4`关于宏的下列说法正确的是___C___。

A)宏名必须用大写字母表示。

B)在#defineR4.5中,R代替了常量4.5。

C)可以用#undef命令终止宏定义的作用域。

D)宏定义是特殊的C语句,应在行末加分号

5若有#defineS(r)PI*r*r,则S(a+b)展开后的形式为__A___。

A)PI*a+b*a+bB)PI*(a+b)*(a+b)C)PI*a*a+PI*b*bD)PI*r*r*(a+b)

6关于带参数的宏,下列说法正确的是__D__

A)宏名无类型,但是它的参数是有类型的。

B)宏展开只能得到一个结果。

C)宏展开时要进行内存单元的分配。

D)宏展开时,不求参数的值,而只进行字符替换。

7在C语言中,char型数据在内存中的存储形式是:

__D____。

A)补码B)反码C)原码D)ASCII码

8___B___是C语言提供的合法的数据类型关键字。

A)FloatB)unsignedC)integerD)Char

9下列语句中符合C语言语法的赋值语句是:

___D___。

A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=7+b,b++,a+7

D)a=7+b,c=a+7;

10字符串"\\\"ABC\"\\"的长度是:

___B____。

(最外边的双引号为字符串的定界符,不是字符串的内容。

)A)11B)7C)5D)3

11程序段unsigneda=65535;printf("%d",a);执行时输出的结果是:

____B_____。

A)65535B)-1C)-32767D)1

12程序段intx,y;x=13;y=5;printf("%d",x%=(y/=2));执行时输出的结果是:

____C_____。

A)3B)2C)1D)0

13___D___是不正确的C语言赋值语句。

A)x=1,y=2;B)x++;C)x=y=5;D)y=int(x);

14下列语句中符合C语言语法的赋值语句是:

____B____。

A)x=(3+b,z)=x+3;B)x=7+y,y++,z++;C)x=y+2=x+y+z;

D)x=3+y++=x+3;

15对于语句f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,___B_____是正确的。

A)语法错误B)使f的值为5.0C)使f的值为0.0D)使f的值为2.0

16对于赋值语句charcx='\037';判断正确的是:

__B__.

A)不合法,不能赋值B)cx的值是一个字符C)cx的值是四个字符D)cx的值是三个字符

17语句intx=-4L;printf("%d",x);对其正确的判断是:

___A___

A)输出值为-4B)赋值非法C)输出值不确定D)输出值为418若x,i,j,k都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:

__C____。

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

19以下符合C语言语法的赋值表达式是:

__B__。

A)d=q+e+f=d+9B)d=q+e,f=d+9;C)d=q+e=d+9;D)d=q+e++=d+7;

20文件包含中,被包含文件__D__

A)必须用“.h"为后缀。

B)可以是目标文件或源文件。

C)可以是可执行文件。

D)可以嵌套其它文件。

21设有以下变量定义

floata;inti;

选择正确的输入语句是__A__;

A)scanf("%f%d",&a,&i);B)scanf("%6.2f%d",&a,&i);

C)scanf("%f%d",a,i);D)scanf("%f%u",&a,&i);22若有以下结构体定义:

D

structexample

{intx;

inty;

}vl;)是正确的引用或定义。

A)example.x=10;B)examplev2;v2.x=10

C)structv2;v2.x=10;D)structexamplev2={10}

23对于如下的结构体定义,若对变量person的出生年份进行赋值,正确的赋值语句是:

C

structdate

{intyear,month,day;

};

structworklist

{charname[20];

charsex;

structdatebirthday;

}person;

A)year=1976;B)birthday.year=1976;C)person.birthday.year=1976;D)person.year=1976;

24若有以下说明,则对结构体变量stud1中成员age的不正确引用为()B

structstudent

{intage;intnum;

}stud1,*p;A)stud1.ageB)p.ageC)p->ageD)(*p).age

26对于下述定义,不正确的叙述是(C)。

uniondata

{inti;

charc;

floatf;

}a,b;

A)变量a所占内存的长度等于成员f的长度B)变量a的地址和它的各成员地址都是相同的C)可以在定义时对a初始化D)不能对变量a赋值,故a=b非法

27#include

unionunA

{inti;

charc[2];

};

main()

{unionunx;

x.c[0]=10;x.c[1]=1;

printf("\n%d",x.i);}A)266B)11C)265D)256

28若有以下说明,则对结构体变量stud1中成员age的不正确引用是:

structstudentB

{intage;intnum;

}stud1,*p;A)stud1.ageB)student.ageC)p->ageD)(*p).age

29若已定义了如下的共用体类型变量x,则x所占用的内存字节数为()C

(设在16位PC机的环境下)。

uniondata

{

inti;

charch;

doublef;

}x;A)7B)11C)8D)10

30设函数的调用形式如下:

f((x1,x2),(y1,y2,y3)),则函数有___A___个形参。

A)2B)3C)4D)5

31下列程序正确的运行结果为()。

C

#include"stdio.h"

unionp

{

inti;

charc[2];

}x;

main()

{

x.c[0]=13;x.c[1]=0;

printf("%d\n",x.i);

}A)208B)14C)13D)209

32若已定义了如下的结构体类型变量x,则x所占用的内存字节数为____D_____(设在16位PC机的环境下)。

structstudent

{intnum;

charname[20];

charsex;

intage;

}x;A)2B)6C)20D)25

33下列程序正确的运行结果为(C)。

#include

main()

{unionu

{char*name;

intage;

intincome;

}s;

s.name="WANGLING";

s.age=28;

s.income=1000;

printf("%d\n",s.age);

}A)8B)28C)1000D)不确定

34若有以下程序段,则使用错误的选项是(D)。

structstudent

{

intnum;

intage;

};

structstudentstu[3]={{1001,20},{1002,19},{1004,20}};

main();

{

structstudent*p;

p=stu;

;}

A)(p++)->numB)p++C)(*p).numD)p=&stu.age

35在C语言中,对文件的存取是以____D____为单位。

A)程序B)文件C)模块D)字节

36下面对函数的叙述,正确的是___B___。

A)函数的返回值是通过return语句获得的B)函数不能嵌套定义C)函数中没有return语句,说明不带回值D)函数中无论是否有return语句,都能返回正确值

37以下哪一个函数的运行不可能影响实参___C___。

A)voidf(char*x)B)voidf(charx[])

C)voidf(charx,chary)D)voidf(char*x[])

38以下对静态局部变量的叙述哪一个是不正确的___B___。

A)静态局部变量在整个程序运行期间都不释放B)在一个函数中定义的静态局部变量可以被另一函数调用C)静态局部变量是在编译时赋初值的,故它只被赋值一次D)数值型静态局部变量的初值默认为0

39所谓文本文件又叫_A_文件。

A)ASCIIB)可执行C)图象D)保存

40定义my_file为文件型指针变量,使用fopen打开一个能读能写的新的二进制文件,以下正确的调用形式为_____B______。

A)my_file=fopen("my.dat","ab+");B)my_file=fopen("my.dat","wb+");

C)my_file=fopen("my.dat","r+");D)my_file=fopen("my.dat","ab");

41定义my_file为文件型指针变量,使用fopen打开一个能读能写的新的文本文件,正确的调用形式为__C___。

A)my_file=fopen("my.dat","ab+");B)my_file=fopen("my.dat","wb+");

C)my_file=fopen("my.dat","w+");D)my_file=fopen("my.dat","r+");

42有一个已有值的实型变量voltage,若要把它们保存到一个磁盘文件fp中,正确的形式是__C___。

A)fprintf(voltage,fp);B)fprintf(fp,voltage,1);

C)fprintf(fp,"%f",voltage);D)fprintf("%f",voltage,fp);

43有一个已有值的实型变量current,若要把它们保存到一个磁盘文件fp中,正确的形式是__B___。

A)fprintf(current,fp);B)fprintf(fp,"%f",current);

C)fprintf(fp,"f",current);D)fprintf(fp,"%d",current);

44fprintf和fscanf只能一次输入/输出___D_____数据。

A)一个实数B)一个整数C)一个字符D)前三个都不是

45在函数调用语句中,fopen("my.dat","ab+");的含义是___A_____。

A)为读/写打开一个二进制文件B)为读/写打开一个文本文件

C)为写打开一个二进制文件D)读一个二进制文件

46在函数调用语句中,fopen("my.dat","rb");的含义是____D____。

A)为读/写打开一个二进制文件B)读一个二进制文件

C)为写打开一个二进制文件D)为输入打开一个二进制文件

47若有如下说明,则下列叙述中正确的是(已知int类型占两个字节):

structstD

{inta;intb[2];

}a;

A)结构变量a与结构体成员a同名,定义是非法的B)程序只在执行到该定义时才为结构体st分配存储单元C)程序运行时为结构体st分配6字节存储单元D)类型名structst可以通过extern关键字提前引用

48用数组名作为函数调用时的实参,实际上传递给形参的是___B___。

A)数组全部元素的值B)数组首地址

C)数组第一个元素的值D)数组元素的个数

49根据下面的程序,正确的输出形式是_D_;(答案中用U来代替空格)

main()

{inti=5,j=10;

printf("i=%d,",i);

printf("j=%d",j);

}A)i=5Uj=10B)5,10C)10,5D)i=5,j=10U

50能正确表示a和b同时为正或同时为负的逻辑表达式是:

(D)

A)(a>=0||b>=0)&&(a<0||b<0)B)(a>=0&&b>=0)&&(a<0&&b<0)

C)(a+b>0)&&(a+b<=0)D)a*b>0

52以下程序输出的是:

(C)(答案中用大写字母U代表空格)

main()

{inta=-1,b=4,k;

k=(a++<=0)&&(!

(b--<=0));

printf("%d%d%d\n",k,a,b);

}A)0U0U3B)0U1U2C)1U0U3D)1U1U2

53当x为偶数时值为“真”,为奇数时值为“假”的表达式是:

(B)

A)!

x!

=0B)x%2==0C)(x/2*2-x)==0D)!

(x%2==0)

54为表示关系x>=y>=z,应使用C语言表达式为:

(A)

A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)

C)(x>=y>=z)D)(x>=y)&(y>=z)

55要求在if后一对圆括号中表示a不等于0的关系,能正确表示这一关系的表达式为:

(A)A)a!

=0B)!

aC)a=0D)a

56设a为整型变量,不能正确表达数学关系10

(A)

A)10

C)a>10&&a<15D)!

(a<=10)&&!

(a>=15)

57在C语言中,表示逻辑值“真”的是:

(B)

A)大于0的值B)非0的值C)tureD)非零整数

58在以下一组运算符中,优先级最高的运算符是:

(C)

A)<=B)=C)%D)&&

59表示关系“x>0同时y<=10”的C语言表达式为A

A)(x>0)&&(y<=10)B)(x<=0)AND(y<=10)

C)x>0,y<=10D)(x<=0)&(y<=10)

60设a,b,c,f均为整型变量,则执行以下程序段后,f的值为:

(B)

a=0;b=c=1;

f=--a||++b&&--c;A)0B)1C)2D)不确定值

61不合法的关系表达式是:

(A)

A)x=yB)'a'+1=n+1D)x!

=x+y

62假定有以下变量定义:

intk=7,x=12;则能使值为3的表达式是:

(D)

A)x%=(k%=5)B)x%=(k-k%5)

C)x%=k-k%5D)(x%=k)-(k%=5)

63ggg(x)

{floatx;

printf(“\n%d",x*x);

}

则函数的类型为__C____。

A)与参数x的类型相同B)是voidC)是intD)无法确定

64以下程序的输出结果是___B___。

#include"stdio.h"

f(char*s)

{char*p=s;

while(*p!

='\0')p++;

return(p-s);

}

main()

{printf("%d\n",f("ABCDEF"));

}A)3B)6C)8D)0

65C语言程序的基本单位是:

__C____。

A)程序行B)语句C)函数D)字符

66下面函数的功能是:

___B___

sss(s,t)

char*s,*t;

{while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}

A)求字符串的长度B)比较两个字符串的大小

C)将字符串s复制到字符串t中D)将字符串s续接到字符串t中

67函数charctype(intx,inty)的返回类型由___A___确定。

A)字符型B)return语句返回的表达式类型

C)浮点型D)调用时的实参类型

68若定义了以下函数:

voidf(……)

{……

*p=(double*)malloc(10*sizeof(double));

……

}

p是该函数的形参,要求通过p把动态分配的存储单元的地址传回主调函数,则形参p的正确定义应当是:

___C___。

A)double*p;B)float**p;C)double**p;D)float*p;

69下面程序段运行的结果是:

B

x=-1;

do{x=x*x;

}while(!

x);

A)死循环B)循环执行一次C)循环执行两次D)有语法错误

70下列程序的运行结果是:

___B___。

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;

}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

printf("%d%d",a,b);

}A)63B)36C)编译出错D)00

71针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是:

(C)

A)break语句可以一次性跳出多层嵌套循环

B)continue语句可以一次性跳出多层嵌套循环

C)break语句只能跳出最内层循环

D)continue语句不能跳出最外层循环

72存在多层嵌套循环时,下列说法正确的是:

(B)

A)continue语句能够中止包含该语句的最内层循环

B)break语句能够中止包含该语句的最内层循环

C)continue语句可以中止所有循环D)break语句可以中止所有循环

73下面程序的运行结果是:

D

#include"stdio.h"

main()

{intx,i;

for(i=1;i<=100;i++)

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf("%d",x);

}}A)3981B)4284C)2668D)2870

74下面程序正确的运行结果是:

C(大写字母U代表空格)

main()

{intnum=0;

while(num<=2)

{num++;

printf("%3d",num);

}

}A)UU1B)UU1UU2C)UU1UU2UU3D)UU1UU2UU3UU4

75针对下列程序段回答问题:

A

for(t=1;t<=100;t++)

{scanf("%d",&x);

if(x<0)continue;

printf("%3d",t);

}A)最多允许输出100个非负整数B)x>=0时什么也不输出

C)printf函数永远也不执行D)当x<0时整个循环结束

76下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。

请在A处填写正确语句。

B

#include"stdio.h"

main()

{intnum;

scanf("%d",&num);

do{

if(___A___)printf("%d",num);

scanf("%d",&num);

}while(num!

=0);

}A)num%100==3B)num/100%10==3

C)num%10/100==3D)num\100==3

77下面程序是从键盘输入4位正整数,然后输出百位是4的数字,

输入0或负数时结束循环。

请在A处填写正确语句。

A

#include"stdio.h"

main()

{intnum;

scanf("%d",&num);

do{

if(___A___)printf("%d",num);

scanf("%d",&num);

}while(num>0);

}A)num/100%10==4B)num/10%100==4C)num%100/10==4

78下面程序是从键盘输入4位正整数,输入0或负数时结束循环。

请在划线处填写内容。

A

#include"stdio.h"

main()

{intnum;

scanf("%d",&num);

do{

scanf("%d",&num);

}while(______);

}A)num>0B)num==0C)!

numD)!

num!

=0

79下面程序的运行结果是:

D

#include"stdio.h"

main()

{inta=1,b=10;

do{

a++;

b-=a;

}while(b-->0);

printf("a=%d,b=%d",a,b);

}A)a=2,b=-1B

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

当前位置:首页 > 医药卫生 > 中医中药

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

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