c语言表示测试结束,C语言简单测试题

《C语言简单测试题》由会员分享,可在线阅读,更多相关《C语言简单测试题(12页珍藏版)》请在人人文库网上搜索。

1、1)C语言中下列叙述正确的是________。A)不能使用dowhile语句构成的循环B)dowhile语句构成的循环,必须用break语句才能退出C)dowhile语句构成的循环,当while语句中的表达式值为非零时结束循环D)dowhile语句构成的循环,当while语句中的表达式值为零时结束循环答案:D评析:选项A是错误的,c语言支持d0while语句;选项B是错误的,dowhile构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项c也是错误的。(2)以下选项中属于C语言的数据类型是________。A)复数型 B)逻辑型 C)双精度型 D)集合型答案:C评析:c语。

2、言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种类型。(3)在C语言中,不正确的int类型的常数是________。A)32768 B)0 C)037 D)0xAF答案:A评析:c语言中int类型的常数的范围是:-3276832767。c整常数可用三种形式表示:十进制整数,八进制整数,十六进制整数。选项A超出范围,不正确。(4)以下程序输出的结果是________。#include#includemain()int a=;printf(%d %u,a,a);system(pause);A)-1 -1。

3、 B) C)-1 D) l答案:C评析:printf函数中不同类型的数据用不同的格式字符,其中d是按整型数据的实际长度输出十进制整数。变量a=以d格式输出时溢出输出值为该数的补码值,即-1;u用来输出unsigned型数据,无符号整型变量的数值范围为0,所以变量a=以u格式输出的值为。(5)下列描述中不正确的是________。A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值答案:C评析:c语言规定只能逐个引用数组元素而不能一次引用整个数组。字符数组的输入、输出可以将整个字符。

4、串一次输入或输出。所以,选项c的说法是不正确的。(6)以下程序的输出结果是________。#include#includemain() int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11;for(i=0;i#includemain()int a=1,2,3,4,5,6,7,8,9,10,11,12;int*p=a+5,*q=NULL;*q=*(p+5);printf(%d %dn,*p,*q);A)运行后报错 B)6 6C)6 12 D)5 5答案:A评析:题目中没有给q分配存储单元,只是简单的给它赋了一个值,所以程序的运行结果是6 ll NULL pointer ass。

5、ignment,也就是运行后报错。(9)以下说法中正确的是_________。A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)c语言程序总是从main()函数开始执行D)c语言程序中的main()函数必须放在程序的开始部分答案:C评析:c语言的程序是由主函数main()开始运行,由主函数来调用其他函数,函数必须是并列的,定义后使用,不能在一个函数中定义其他函数,main()函数不一定要放在程序的开始部分,故选c。(10)有如下程序#include#includefloat fun(int x,int y)return(x+y);main()i。

6、nt a=2,b=5,c=8;printf(%3.0fn,fun(int)fun(a+c,b),(a-c);system(pause);程序运行后的输出结果为__________。A)编译出错 B)9 C)21 D)90答案:B评析:本题中先执行(int)fun(a+c,b)函数的调用,值为整型数值15;然后再执行fun(15,(a-e)函数调用,值为单精度实型数值9。输出为30f,即有效数长度为3,没有小数位数,所以最后结果为9。(11)能正确表示a和b同时为正或同时为负的逻辑表达式是_________。A)(a=0b=0)&(a=0&b=O)&(a0)&(a+b0答案:D评析:选项A中,表。

7、达式表示的是a,b为异号;选项B中,表达式表示的是0,因为没有满足条件的值;选项c中,表达式表示的是0,因为没有满足条件的值;选项D表示的是a和b为同号。(12)若己定义:int a9,*p=a;并在以后的语句中未改变p的值,不能表示al地址的表达式是__________。A)p+l B)a+l C)a+ D)+p答案:C评析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常量“移动”,指向数组的其它元素。(13)以下程序的输出结果是__________。#include#includevoid main()int a=-1,b=1,k;if(+a#incl。

8、ude#define P1(x) printf(x)void main()char d=p;P1(d);P1(d);system(pause);A)pd B)d”d” C)”p”d D)”p”d”答案:A评析:带参数的宏定义的一般形式为:#define宏名(参数表)字符串程序中的Pl(d);经宏置换后为printf(d);,所以输出字符串p;程序中的Pl(“d”);经宏置换后printf(“d”)。(15)以下选项中,能定义s为合法的结构体变量的是__________。A) typedef struct abc double a;charb10;s;B) struct double a;cha。

9、r b10;s;C) struct ABC double a;char b10;ABC s;D) typedef ABC double a;char b10;ABC s;答案:B评析:定义一个结构体类型的变量,可采用三种方法:先定义结构体类型,再定义变量名;在定义类型的同时定义变量:直接定义结构类型变量,即不出现结构体名:选项B符合第三种定义方法。(16)请读程序:#include#include#includemain()char*s1=AbCdEf, *s2=aB;s1+; s2+;printf(%dn,strcmp(s1,s2);system(pause);上面程序的输出结果是_____。

10、___。A)正数 B)负数 C)零 D)不确定的值答案:A评析:strcmp(X1,X2)是串比较函数,本题中“s1”、“s2”分别表示这两个串中第一个字符的地址,s1+和s2+是将指针指向串的第二个字符,则*sl为“bCdEf,*s2为“B”。在字符串比较中,大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的, sls2,返回值为正数。(17)请读程序:#include#includemain()int a=5,b=7,c=9;printf(%d,%d,a,b,c);printf(%d,%d,%d,a,b);system(pause);上面程序的输出结果是________。A)5。

11、,7,9,5,7 B)5,7,5,7 C)5,7,不定,7,9 D)5,7,5,7,不定答案:D评析:printf函数按格式控制符的个数输出表列中对应的数据,若输出表列的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对应的输出表列的数据,格式控制符多的部分输出的数据是随机的。(18)请读程序:#include#includeint func(int a,int b)int c;c=a+b;return c;main()int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);pr。

12、intf(%dn,r);system(pause);上面程序的输出结果是________。A)ll B)20 C)2l D)31答案:C评析:函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x,y+,x+y)是一个逗号表达式,它的值应该等于x+y,所以整个表达式(x,y+,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。二、填空题(每空2分,共40分)(19)若运行时给变量x输入12,则以下程序的运行结果是 【8】 ;#include#includemain()int x,y;sca。

13、nf(%d,&x);y=x12?x+10:x-12;printf(%dn,y);system(pause);答案:【8】0评析:三目运算符的形式为(表达式1)7(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为xt2为假,所以结果为x-12,即为0。(20)下面程序的功能:输出100以内能被3整除且个位数为6的所有整数,请补充完整。#include#includemain() int i,j;for(i=0; 【12】;i+) j=i*10+6;if( 【13】)continue;printf(%dn,j);system(pause);答案:【12】it返回正值,当smax)max=2Q;return(max);答案:【18】j4【19】arrij【20】arrij评析:2*4矩阵实际上就是一个二维数组,结合本题应为arr24,所以在第一个循环中应当填写“4”;第二个横线处是要判断当前的数组元素值是否大于max,所以应填写arrij;第三个横线处是要将当前大于max的数组元素的值赋给变量max,所以应当填写“arriil。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值