C语言考试试题.docx
《C语言考试试题.docx》由会员分享,可在线阅读,更多相关《C语言考试试题.docx(8页珍藏版)》请在冰豆网上搜索。
C语言考试试题
C语言程序设计_复习题
第一部分(填空题):
1.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。
A.大写字母B.连接符C.数字字符D.下划线
答案:
B
2.下面关于计算机正确的是()。
A.计算机由硬件系统和软件系统两部分构成
B.只要有硬件系统,计算机就能工作
C.计算机只能处理文本信息
D.计算机只能处理计算问题
答案:
A
3.()是c语言提供的合法的数据类型关键字。
A。
IntB。
longC.CharD。
integer
答案:
B
4.面向过程的高级语言包括()。
A。
C,JAVAB.C,BASICC。
C++.NET,ASPD。
C,VB
答案:
B
5.软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件).下面属于应用软件的是()。
A。
编译程序B.操作系统C。
教务管理系统D.汇编程序
答案:
C
6.以下选项中关于C语言常量的叙述错误的是()。
A.所谓常量,是指在程序运行过程中,其值不能被改变的量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量
D。
经常被使用的变量可以定义成常量
答案:
D
7.下面描述中正确的是()。
A。
C语言提供了专门的输入/输出语句
B.C语言调用输入/输出函数时需要使用include命令包含头文件
C。
C语言可以直接使用输入/输出函数
D.输入/输出函数所在的头文件是stdlib.h
答案:
B
8.假设有char型变量c1,c2,执行下面程序段:
c1=gatchar();
c2=gatchar();
printf(“c1=%c,c2=%c\n”,c1,c2);
如果c1和c2的值分别为字符a和b,则从键盘正确的输入方式是()。
A.ab<回车>B。
a<回车〉b〈回车〉
B.C.a<空格>b〈回车〉D.ab<回车〉
答案:
A
9.下面描述中正确的是().
A.printf()函数的输出列表项只允许是变量
B.printf()函数的输出列表项可以是常量、变量以及表达式
C.printf()函数输出列表项也可以是另一个printf()函数
D.printf()函数的输出列表项之间用空格分隔
答案:
B
10.假设有:
inta,b;scanf("%d,%d",&a,&b);
为了得到a和b分别为10和20,从键盘正确输入数据的是().
A。
10〈空格>20<回车>B。
10<回车>20<回车>
C。
10,20〈回车〉D。
10,20,〈回车>
答案:
C
11.下面说法正确的是().
A.表达式计算时要考虑运算符的优先级和结合性
B.表达式计算需要考虑运算符的优先级
C.表达式计算时需要考虑运算符的结合性
D.括号()可以改变运算符的优先级
答案:
A
12.下面说法正确的是()。
A。
负数参与“/”和“%”运算时,其结果与C89或C99的标准有关
B。
C语言的“/"和“%”运算可以写成5/0或5%0的形式
C.赋值运算要求他的左操作数可以是变量、常量或另一个表达式
D。
表达式(x=a〉b)&&(y=c>d)是错误的写法
答案:
A
13.假设有下面程序段:
inta;floatb;b=a=4.5;
下面错误的描述是()。
A.变量a的值是4B.变量b的是4.0
C。
赋值表达式a=4.5的结果值是4D.变量b的值是4。
5
答案:
D
14.假设a,b,c,x,y均为int型,下面说法正确的是()。
A。
表达式“a+=2”等价于表达式“a=a+2”
B。
表达式“a*=b+c”等价于表达式“a=a*b+c”
C。
表达式“y=x++"等价于表达式“x++,y=x”
D.表达式“y=x++”等价于表达式“y=x,x++”
答案:
D
15.逻辑运算符两侧运算对象的数据()。
A。
只能是0或1B.只能是0或非0正数
C。
只能是整型或字符型数据D.可以是任何类型的数据
答案:
D
16.sizeof(float)是()。
A.一个双精度型表达式B。
一个整型表达式
C.一个函数调用D。
一个不合法的表达式
答案:
B
17.结构化程序的实现由()组成程序逻辑。
A.顺序结构B。
分支结构
C.循环结构D.顺序结构、分支结构和循环结构
答案:
D
18.假设变量a为整型量,语句if(a!
=0);和语句if(a);相比较,正确答案().
A。
两者作用不同B。
两者作用等价
C。
两者作用相反D。
if(a)语法错
答案:
B
19.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与( )。
A.缩排位置相同的if配对
B.其之前最近且不带else的if配对
C.其之前最近的if配对
D.第一个if配对
答案:
B
20.阅读下面程序:
该程序()。
#include"stdio。
h"
main()
{
intx=—10,y=5,z=0;
if(x=y+z)
printf(”***\n");
else
printf(”$$$\n”);
}
A。
有语法错不能通过编译
B.输出***
C.可以通过编译但不能通过连接
D.输出$$$
答案:
B
21.下面说法错误的是()。
A.当条件满足时重复执行某一段程序(代码)就是循环
B.循环体只有一条语句时,可以不写成复合语句形式
C.while语句、for语句可以相互转换
D。
do..。
while语句可以实现前判断结构
答案:
D
22.下面说法错误的是()。
A。
break语句可退出循环体而执行该循环语句后面的语句
B。
break语句可以出现在switch语句和循环语句中
C。
continue语句只能出现在循环结构中
D.goto语句即可以从函数体跳出,也可以跳入函数体中
答案:
D
23.以下不是无限循环的是()。
A.for(y=6,x=1;xfor(;;);
C.while(—5)x++;D。
for(i=20;;i--)sum+=i;
答案:
A
24.对以下说明语句的正确理解是( )。
inta[10]={6,7,8,9,10};
A.将5个初值依次赋给a[1]至a[5]
B.B。
将5个初值依次赋给a[0]至a[4]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组与初值的个数不相同,所以此语句不正确
答案:
B
25.判断字符串a和b是否相等,应当使用( ).
A.a==b B。
a=b C.strcpy(a,b) D.strcmp(a,b)
答案:
D
26.阅读程序,输出结果是()。
intmax(intx,inty)
{intz;
z=x>y?
x:
y;
return(z);
}
main()
{inta=10,b=50,c=20,m;
m=max(a,max(b,c));
printf("%d”,m);
}
A.20B.10C。
语法错误D.50
答案:
D
27.对两个数组a和b进行如下初始化:
chara[]=”ABCDEF”;charb[]={'A','B','C','D',’E’,’F'};
则以下叙述正确的是()。
A。
a与b数组完全相同B.a与b长度相同
C.a和b中都存放字符串D。
a数组比b数组长
答案:
D
28.C语言规定:
简单变量做实参时,它和对应形参之间的数据传递方式是( )。
A。
地址传递 B.单向值传递
C.由实参传给形参,再由形参传回实参 D.由用户指定传递方式
答案:
B
29.以下正确的描述是( )。
A。
函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C。
函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
答案:
B
30.若有以下定义:
chara[10]=”student”,*p=a;则不能代表字符u的表达式是().
A。
p+2B。
a[2]C.p[2]D。
p+=2,*p
答案:
A
第二部分(编程题):
1。
判断一个4位数是否为回文数(正读反读都一样的数)?
答案:
#include〈stdio.h>
intmain()
{inti;
inta,b,c,d;
printf(”..。
.\n");
for(i=1000;i〈=9999;i++)
{a=i/1000;
b=i%10;
c=(i/100)%10;
d=(i%100)/10;
if(a==b&&c==d)
printf(”%6d”,i);}
}