C语言考试试题基础版.docx
- 文档编号:10671744
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:37
- 大小:85.32KB
C语言考试试题基础版.docx
《C语言考试试题基础版.docx》由会员分享,可在线阅读,更多相关《C语言考试试题基础版.docx(37页珍藏版)》请在冰点文库上搜索。
C语言考试试题基础版
1.
2.
3.
4.
5.
6.
、选择题
在每个C程序中都必须包含有这样一个函数,该函数的函数名为
A.mainB.MAINC.nameD.function
在以下关于C语言的注释的叙述中,不正确的是
A.注释可用"/*"、"叨形式表示,也可用"//"形式表示
B.编译器在编译一个程序时,将跳过注释,不对其进行处理
C.编译器在编译一个程序时,可发现注释中的单词拼写错误
D.程序中注释的多少不会影响所生成的可执行文件的长度
以下叙述不正确的是。
A.在C程序中,严格区分大小写字母
B.—个C源程序有且仅有一个main函数
C.在C程序中,注释只能位于一条语句的后面
D.—个C程序总是从main函数开始执行
下列合法的标识符为
A.abde+B.#KDJFC.67KDJD.DK3_
关于字符串和字符的关系正确的是
A.
B.
C.
“A”与'A'是相同的
字符串是常量,字符是变量
“A”与A'是不同的
“A”与“A”是相同的
D.
下面关于语句的说法正确的是
A.下面这两段程序的执行效果是一致的
if(x>y)
{z=x;s=z*z;}else
{z二y;s=1/(z*z);}
if(x>y)z=x;s=z*z;
elsez=y;s=1/(z*z);
B.
C.
空语句是只有一个分号的语句,它其实什么也不干
语句的构成不一定需要分号
语句的书写对程序的运行不起作用,因此可以随便写都可以
D.
以下各标识符中,合法的用户标识符组为
A.
B.
C.
PAd,P#d,b-b,abc,_0123,ssipedcin,a10,CPP,float,del_word,signedvoid,max,hiy,
D.a,temp,_isw,INT,keep,wind
8.字符串“”E””的长度是
C.12
D.非法字符串
9.数学式JSinX在C程序中对应的不正确的表达式为0
A.sqrt(sin(x)>O?
sin(x):
-sin(x))B.sqrt(fabs(sinx))
C.sqrt(sqrt(sinx*sinx))D.fabs(sqrt(sin(x)))
10.下列是C语言的有效标识符?
A._No1B.No.1C.12345D.
11.C语言中,表示一条语句结束的标号是_
A.#B.;C.//
12.每个C程序中都必须有且仅有一个
A.类B.预处理命令C.主函数
13.下列数据类型不是C语言基本数据类型的是0
A.字符型B.整型C.实型D.数组
14.下列字符列中,可作为C语言程序自定义标识符是
A.switchB.fileC.breakD.do
15.运算符+、<=、=、%中,优先级最低的运算符是.
A.+B.<=C.=
16.下列字符列中,可以作为“字符串常量”的是
A.ABCB."xyz"C.'uvw’
17.字符串"vm\x43\\\np\102q"的长度是
A.8B.10C.17
18.在C语言中,自定义的标识符
A.能使用关键字并且不区分大小写
B.不能使用关键字并且不区分大小写
C.能使用关键字并且区分大小写
D.不能使用关键字并且区分大小写
19.设x和y均为逻辑型变量,则x&&y为真的条件是
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
20.若给定条件表达式(m)?
(a++):
(a--),则其中表达式m_
A.和(m==0)等价B.和(m==1)等价
C.和(m!
=0)等价D.和(m!
=1)等价
21.在if语句中,用作判断的表达式为0
A.关系表达式B.逻辑表达式
<=、
int
D.%
D.语句
D.16
C.算术表达式
22.设i和k都是int类型,则以下
for(i=0,k=-1;k=1;i++,k++)
A.判断循环结束的条件不合法
C.循环体一次也不执行
23.若有以下语句,则输出结果为
inta=2,b=1;
strings1;
s1=a>b?
"a大于b":
"a小于b";
printf("%s\n",s1);
A.a大于bB.a小于b
24.intk=10;
while(k=0)k=k-1;
则下面描述正确的是
A.while循环执行10次
C.循环体语句一次也不执行
inta=1,b=2,c=2,t;
while(avb){t=a;a=b;b=t;c--;}
printf("%d,%d,%d\n",a,b,c);
运行结果为。
A.1,2,0B.2,1,0
intx=-1;
do
{x=x*x;}
while(!
x);
下列说法正确的是
A.是死循环
C.循环执行一次
以下能正确计算1*2*3*
A.do{i=1;s=1;
s=s*i;i++;}
while(i<=10);
C.i=1;s=1;
do{s=s*i;
i++;}while(i<=10);
28.以下描述正确的是
25.
26.
27.
D.任意表达式
for循环语句
printf("****\n");
B.是无限循环
D.循环体只执行一次
C.1
D.输出语句有错
B.循环是无限循环
D.循环体语句执行一次
C.1,2,1
D.2,1,1
B.循环执行两次
D.有语法错误
…*10的程序段是
B.do{i=1;s=0;s=s*i;i++;}while(i<=10);
D.i=1;s=0;
do{s=s*i;
i++;}
while(i<=10);
A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能
使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D.do-while循环中,根据情况可以省略while
29.while和do-while循环的主要区别是。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
30.下面有关for循环的正确描述是。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
31.对for(表达式1;;表达式3)可理解为。
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.or(表达式1;表达式3;表达式3)
32.在C编程语言中,以下正确的描述是。
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循坏体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出,只能使用goto语句
33.下面程序段
for(t=1;tv=100;t++)
{seanf("%d",&x);if(x<0)continue;printf("%d\n",t);}
B.x>=0时什么也不输出
D.最多允许输出100个非负整数
A.当x<0时整个循环结束
C.cout永远也不执行
34.定义一个函数实现交换x和y的值,并将结果正确返回。
能够实现此功能的
是。
A.swap(intx,inty){intt;t=x;x=y;y=t;}
B.swap(int*x,int*y){intt;t=x;x=y;y=t;}
C.swap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}
D.swap(int*x,int*y){int*t;t=x;x=y;y=t;}
35.若有代数式3a&bc,则不正确的C语言表达式是
A.a/b/c*e*3B.3*a*e/b/c
C.3*a*e/b*cD.a*e/c/b*3
36.以下表达式值为3的是
A.16-13%10
C.14/3-2
B.2+3/2
D.(2+6)/(12-9)
intk=7,x=12;则以下能使值为3的表达式是。
B.x%=(k-k%5)
D.(x%=k)-(k%=5)
(exp)?
A++:
b--,则以下表达式中能完全等价于表达式(exp)
37.设有说明语句,
A.x%=(k%=5)
C.x%=k-k%5
38.若有条件表达式
的是。
A.(exp==0)
39.设有以下语句:
typedefstructREC
{charc;inta[4];}REC1;
则下面叙述中正确的是
可以用REC定义结构体变量
REC1是structREC类型的变量
REC是struct类型的变量
可以用REC1定义结构体变量
B.(exp!
=0)
C.(exp==1)D.(exp!
=1)
B.
C.
D.
40.下列关于结构的语法错误的是
A.
B.
C.
D.
结构是由用户自定义的一种数据类型结构中可设定若干个不同数据类型的成员
结构中成员的数据类型可以是另一个已定义的结构在定义结构时,可以为成员设置默认值
41.以下关于结构体的叙述中,错误的是
结构体是一种可由用户构造的数据类型
结构体中的成员可以具有不同的数据类型结构体中的成员不可以与结构体变量同名结构体中的成员可以是指向自身结构的指针类型
B.
C.
D.
42.说明一个结构体变量时,系统分配给它的内存是A.
B.
C.
D.
各成员所需内存量的总和结构中第一个成员所需内存量成员中占内存量最大者所需的容量结构中最后一个成员所需内存量
43.设有以下说明语句:
structstu
{inta;floatb;}stutype;
则下面的叙述不正确的是
B.
C.
struct是结构体类型的关键字
structStu是用户定义的结构体类型名stutype是用户定义的结构体类型名a和b都是结构体成员名
D.
44.若有如下定义
structdata
{intx,y;}test仁{10,20},test2;
则以下赋值语句中错误的是—
A.test2=test1;
C.test2.x=test1.y
45.以下对结构体变量
structstudent
{intage;intnum;}stu1,*p;
p=&stu1;
A.stu1.ageB.student.ageC.p->ageD.(*p).age
46.当说明一个共用体变量时,系统分配给它的内存是—
A.
B.test2.x=test1.x;
D.test2={30,40};
stu1中成员age的非法引用是
B.
C.
各成员所需内存量的总合
结构中第一个成员所需内存量成员中占内存量最大者所需的容量结构中最后一个成员所需内存量
D.
47.以下对C语言中共用体类型数据的叙述正确的是
A.
B.
C.
可以对共用体变量名直接赋值
一个共用体变量中可以同时存放其所有成员一个共用体变量中不能同时存放其所有成员共用体类型定义中不能出现结构体类型的成员
D.
48.若有以下定义和语句:
uniondata
{inti;charc;floatf;}a;
intn;
则以下语句正确的是—
A.a=5;B.a={2,''.2}
C.printf(%d\n”,a);D.n=1;
49.设有以下说明,则下面不正确的叙述是
union
{inti;charc;floatf;}un;
A.un所占的内存长度等于成员f的长度
B.un的地址和它的成员地址都是同一地址
C.un可以作为函数参数
D.不能对un赋值,但可以在定义un时对它初始化
50.C语言共用体类型变量在程序运行期间
A.
B.
C.
D.
51.
C.
(1)
(2)
(3)
(4)
所有成员一直驻留在内存中只有一个成员驻留在内存中部分成员驻留在内存中没有成员驻留在内存中使用typedef定义一个新类型的正确步骤是
(2)、(4)、
(1)、(3)B.
(1)、(3)、
(2)、(4)
(2)、
(1)(4)(3)D.(4)
(2)(3)
(1)
把变量名换成新类型名
按定义变量的方法写出定义体
用新类型名定义变量
在最前面加上关键则typedef
o用typedef可以定义各种类型名,但不能用来定义变量用typedef可以增加新类型用typedef只是将已存在的类型用一个新的标识符来代表使用typedef有利于程序的通用和移植下面试图为double说明一个新类型名real的语句中,正确定是typedefrealdouble;
52.下面对typedef的叙述中不正确的是
a.
B.
C.
D.
53.
B.typedefdoublereal;
C.typedefreal=double;
D.typedefdouble=real;
54.下面能正确进行字符串赋值操作的是
A.chars[5]={ABCDE”};
C.char*s;s=ABCDE”;
55.下面程序段的运行结果是
char*s=”abcdW;s+=2;printf(%d”,s);
A.cdeB.字符cC.字符c的地址D.无确定的输出结果
56.下面程序段的运行结果是charstr[]=”ABC”,*p=str;
0
B.chars[5]={A',B',C',D',E'};
D.char*s;scanf(%S',s);
printf(%d\n”,*(p+3));
A.67B.0C.字符C的地址D.字符C
57.下面程序段的运行结果是。
chara[]=”languagS,*p;
%c”,*P-32);p++;}
B.languageC.LANGD.langUAGE
则以下不正确的叙述是。
P=a;
while(*p!
=''){printf(
A.LANGUAGE
58.有如下说明语句,
chara[]=”ltismine”;
char*p=”ltismine”
A.
t所在存储单元的地址
a+1表示的是字符
B.p指向另外的字符串时,字符串的长度不受限制
C.P变量中存放的地址值可以改变
D.a中只能存放10个字符
答案:
1.A
2.C
3.C4.D5.C
6.B
7.D
8.A
9.B
10.A
11.B
12.C13.
D14.
B15.
C
16.
B
17.
A18.
D19.
A20.C
21.D
22.B
23
.A
24.C
25.
D
26.C
27.C28
.C29.
A30.
D
31.
B
32.B
33.
D
34.C
35.C
36.
B
37.D
38.B39.D
40.D
41.C
42.
A
43.C
44.D
45.B46.C
47.C48.B
49.C
50.B51.C
52.B
53.B
54.C55.C56.B
57.C
58.D
二、填空题
若用数组名作为函数调用时的实参,则实际上传递给形参的是
如果一个函数无返回值,定义它时函数类型应是
预处理命令以开头。
,在内存中它占有一个存储空间。
,再将该值转换成与一致的值,并
在程序中else总是与的if配对,而不管程序的书写格式如何。
在函数中使用语句返回值。
要和实参相
函数的形参在未被调用前分配空间,函数形参的
各有独立的存储空间,形参的存储空间在函数被调用时才分配,不影响实参,后者的特点是形参实参共用一个存储空间,变实参值。
16.
传给形参。
在传值调用中,实际是把实参的
17.inta[3]=3;则a[2]=
18.inta[3]={1,3,5,7};则
19.
构成,其数组元素的数据类型
数组由和
是_
声明长度为10的float型数组a,且初始化为0的语句
20.
指针是存放一个变量的—当数组名作形参时,相当于要访问数组元素可以采用.
定义一个指针P,它指向一个有6个整型元素的一维数组,定义语句
的变量。
23.
是:
21.
22.
24.
为_
25.定义一个指针数组P,它有4个元素,每个指针指向一个整型数据,定义语
句为。
26.指针可以指向字符串,在定义一个字符型指针时,可以给它初始化,目的是
把字符串的放入指针变量。
27.指针可以指向函数,这时它所指的是函数的。
28.C语言的源程序必须通过和后,才能被计算机执行。
29.C语言源程序文件的后缀是;经过编译后,生成文件的后缀
是;经过连接后,生成文件的后缀是
30.在C语言中,表示逻辑“真”值用。
31.设y为int型变量,请写出描述“y是奇数”的表达式
32.C语言提供的3种逻辑运算符是、和。
33.若X、y、z均为int型变量,则描述“x或y中有一个小于z”的表达式
是。
34.设a、b、c均为int型变量且a=7.5,b=2,c=3.6,则表达式a>b&&c>a||a
&&!
c>b的值是。
35.设a、b、c均为int型变量且a=6,b=4,c=2,则表达式!
(a-b)+c-1&&b+c/2
的值是
36.设a、b均为int型变量且a=2,b=4,则表达式!
(x=a)||(y=b)&&0的值
是。
37.设ab、c均为int型变量且a=1,b=4,c=3,则表达式!
(a
c&&1的
值是。
38.若有条件“2 答案: 顺序结构选择结构循环结构 ;} x+y<=5 3 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 1 数组首地址 内置函数 # 所指变量的地址 表达式的值左部变量类型 它前面最近且未配对 return 不类型及数量 传值调用传址调用 值 0 会出错 数组名下标相同的 floata[10]={0}; 地址 指针 下标法地址法指针法 int(*p)[6] 25.int*p[4] 26.首地址 27.入口地址 28.编译连接 29.cobjexe 30.非0数字 31.(y%2)==1 32.&& 33. 34. 35. 36. 37. 38. x 0 1 0 0 x<3 II! IIy &&x>2IIXV-10 三、填空完成下面的程序 1.以下程序的功能是: 输出x,y,z三个数中的最大者。 请填空。 #include intmain() {intx=4,y=6,z=7; intu,v; if(x>y)u=x; elseu=y; if(u>z)v=u; elsev=z; printf(v=%d”,v); return0; } 2.以下程序的功能是: 输入3个整数,按从大到小的顺序进行输出。 请填空。 #include intmain() {intx,y,z,c; scanf(%d%d%d”,&x,&y,&z); if(—y<^) {c=y;y=z;z=c;} if(x {c=x;x=z;z=c;} if(亠对 {c=x;x=y;y=c;} printf(%d,%d,%d”x,y,z); return0; } 3.以下程序的功能是: 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变。 请填空。 #include intmain() {charch; scanf(%c”,&ch); if(ch>='A'&&chv='‘)ch=ch+32; elseif(ch>=''&&chv='‘)ch=ch-32; printf(%c”,ch); return0; } 4.以下程序的功能是: 根据输入的三角形的三条边,判断是否能组成三角形,若可以则输出它的面积和三角形的类型。 请填空。 #include #include intmain() {floata,b,c; floats,area; scanf(%f%f%f”,&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b) {s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); pnntf(%f”,area); if(a==b&&b==c) printf(等边三角形”; elseif((a==b&&b! =c)||(a==c&&c! =b)||(c==b&&a! =c)) printf(等腰三角形”; elseif((a*a+b*b=c*c)||(a*a+c*c=b*b)||(b*b+c*c=a*a)) printf(直角三角形”); elseprintf(一般三角形”; } elseprintf(不能组成三角形”); return0; } 5.将以下含有swi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考试 试题 基础