好文档 - 专业文书写作范文服务资料分享网站

C语言笔试题带答案

天下 分享 时间: 加入收藏 我要投稿 点赞

评析:美国国家标准化协会ANSI规定了一些常用的流程图符号,其中椭圆框表示起止框,方框表示处理框,菱形框表示判断分支,箭头表示流程线。

(13)C语言中下列叙述正确的是________。 A)不能使用do…while语句构成的循环

B)do…while语句构成的循环,必须用break语句才能退出

C)do…while语句构成的循环,当while语句中的表达式值为非零时结束循环 D)do…while语句构成的循环,当while语句中的表达式值为零时结束循环 答案:D

评析:选项A是错误的,c语言支持d0…while语句;选项B是错误的,do...while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项c也是错误的。

(14)以下选项中属于C语言的数据类型是________。 A)复数型 B)逻辑型 C)双精度型 D)集合型 答案:C

评析:c语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种类型。

(15)在C语言中,不正确的int类型的常数是________。 A)32768 B)0 C)037 D)0xAF 答案:A

评析:c语言中int类型的常数的范围是:-32768~32767。c整常数可用三种形式表示:十进制整数,八进制整数,十六进制整数。选项A超出范围,不正确。

(16)以下程序输出的结果是________。 main() {

int a=65535;

printf(“%d%u”,a,a); }

A)-1 -1 B)6553565535 C)-1 65535 D)65535 –l 答案:C

评析:printf函数中不同类型的数据用不同的格式字符,其中%d是按整型数据的实际长度输出十进制整数。变量a=65535以%d格式输出时溢出输出值为该数的补码值,即.1;%u用来输出unsigned型数据,无符号整型变量的数值范围为0~65535,所以变量a=65535以%u格式输出的值为65535。

(17)下列描述中不正确的是________。 A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值 答案:C

评析:c语言规定只能逐个引用数组元素而不能一次引用整个数组。字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选项c的说法是不正确的。

(18)以下程序的输出结果是________。 main()

{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];

for(I=0;i<4;i+=2)printf(”%d”,p[I]); }

A)5 2 B)5 l C)5 3 D)9 7 答案:C

评析:题中*p=&x[1][1];是指将数组x的数组元素x[1][1]的地址赋值给指针变量p,使p指向x[11[1]这个数组元素,那么p[0]即为指针变量p当前所指向的数组元素x[1][1]的值。

(19)下列可用于C语言标识符的一组是________。 A)voidWORDdefine B)a 6$sysFor C)2asizeof abc D)Int define sizeof 答案:D

评析:c语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。注意,大写字母和小写字母被认为是两个不同的字符。C语言中的关键字不能用作标识符。

(20)以下程序的运行结果是__________。 #include “stdio.H” main() {

int a[]={1,2,3,4,5,6,7,8,9,10,1 1,12}; int*p=a+5,*q=NULL; *q=*(p十5);

printf(”%d %d、n”,‘p,*q); }

A)运行后报错 B)6 6 C)6 12 D)5 5 答案:A

评析:题目中没有给q分配存储单元,只是简单的给它赋了一个值,所以程序的运行结果是6 ll NULL pointer assignment,也就是运行后报错。

(21)以下说法中正确的是_________。 A)C语言程序总是从第一个函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义 C)c语言程序总是从main()函数开始执行

D)c语言程序中的main()函数必须放在程序的开始部分 答案:C

评析:c语言的程序是由主函数main()开始运行,由主函数来调用其他函数,函数必须是并列的,定义后使用,不能在一个函数中定义其他函数,main()函数不一定要放在程序的开始部分,故选c。

(22)有如下程序

float fun(int x,int y){return(x+y);} main() {

int a=2,b=5,c=8;

printf(”%3.0f\\n”,fun((int)fun(a+c,b),(a-C))); }

程序运行后的输出结果为__________。

A)编译出错 B)9 C)21 D)9.0

答案:B

评析:本题中先执行(int)fun(a+c,b)函数的调用,值为整型数值15;然后再执行fun(15,(a-e))函数调用,值为单精度实型数值9.000000。输出为%3.0f,即有效数长度为3,没有小数位数,所以最后结果为9。

(23)能正确表示a和b同时为正或同时为负的逻辑表达式是_________。 A)(a>=‖b>=0)&&(a=0&&b>=O)&&(a<0&&b0)&&(a+b<=0) D)a*b>0 答案:D

评析:选项A中,表达式表示的是a,b为异号;选项B中,表达式表示的是0,因为没有满足条件的值;选项c中,表达式表示的是0,因为没有满足条件的值;选项D表示的是a和b为同号。

(24)若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[l]地址的

表达式是__________。

A)p+l B)a+l C)a++ D)++p 答案:C

评析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常量“移动”,指向数组的其它元素。

(25)以下程序的输出结果是__________。 main()

{ int a==-1,b=1,k; if((++a<0)&&!(b–<=0))

printf(”%d %d\\n”,a,b);

C语言笔试题带答案

评析:美国国家标准化协会ANSI规定了一些常用的流程图符号,其中椭圆框表示起止框,方框表示处理框,菱形框表示判断分支,箭头表示流程线。(13)C语言中下列叙述正确的是________。A)不能使用do…while语句构成的循环B)do…while语句构成的循环,必须用break语句才能退出C)do…while语句构成的循环
推荐度:
点击下载文档文档为doc格式
2ey9025wdf1ujtp7zqyg25ui718xfz018ys
领取福利

微信扫码领取福利

微信扫码分享