C语言简单测试题_第1页
C语言简单测试题_第2页
C语言简单测试题_第3页
C语言简单测试题_第4页
C语言简单测试题_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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)逻辑型 

2、0;  C)双精度型    D)集合型答案:C评析:c语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种类型。 (3)在C语言中,不正确的int类型的常数是_。A)32768    B)0    C)037     D)0xAF答案:A评析:c语言中int类型的常数的范围是:-3276832767。c整常数可用三种形式表示:十进制整数,八进制整数,十六

3、进制整数。选项A超出范围,不正确。 (4)以下程序输出的结果是_。#include<stdio.h>#include<stdlib.h>main()int a=;printf("%d %u",a,a);system("pause");A)-1 -1    B) C)-1 D) l答案:C评析:printf函数中不同类型的数据用不同的格式字符,其中d是按整型数据的实际长度输出十进制整数。变量a=以d格式输出时溢出输出值为该数的补码值,即-1;u用来输出unsigned型数据,无符号整型变量的数

4、值范围为0,所以变量a=以u格式输出的值为。 (5)下列描述中不正确的是_。A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值答案:C评析:c语言规定只能逐个引用数组元素而不能一次引用整个数组。字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选项c的说法是不正确的。 (6)以下程序的输出结果是_。#include<stdio.h>#include<stdlib.h>main() int i,x33=9,8,7,6,5,4,3

5、,2,1,*p=&x11;for(i=0;i<4;i+=2)printf("%d",pi);system("pause");A)5  2    B)5  l    C)5  3    D)9  7答案:C评析:题中*p=&x11;是指将数组x的数组元素x11的地址赋值给指针变量p,使p指向x11这个数组元素,那么p0即为指针变量p当前所指向的数组元素x11的值。 (7)下列可用于C语言标识符的一

6、组是_。A)void WORD define    B)a 6$sys ForC)2a sizeof abc     D)Int define sizeof答案:D评析:c语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。注意,大写字母和小写字母被认为是两个不同的字符。C语言中的关键字不能用作标识符。 (8)以下程序的运行结果是_。#include<stdio.h>#include<stdlib.h>main()int a=1,2,3,4,5,6,7,8,9

7、,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  

8、;NULL pointer assignment,也就是运行后报错。 (9)以下说法中正确的是_。A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)c语言程序总是从main()函数开始执行D)c语言程序中的main()函数必须放在程序的开始部分答案:C评析:c语言的程序是由主函数main()开始运行,由主函数来调用其他函数,函数必须是并列的,定义后使用,不能在一个函数中定义其他函数,main()函数不一定要放在程序的开始部分,故选c。 (10)有如下程序#include<stdio.h>#include<s

9、tdlib.h>float fun(int x,int y)return(x+y);main()int 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评析:本题中先执行(i

10、nt)fun(a+c,b)函数的调用,值为整型数值15;然后再执行fun(15,(a-e)函数调用,值为单精度实型数值9。输出为30f,即有效数长度为3,没有小数位数,所以最后结果为9。 (11)能正确表示a和b同时为正或同时为负的逻辑表达式是_。A)(a>=0b>=0)&&(a<Ob<O)        B)(a>=0&&b>=O)&&(a<0&&b<O)C)(a+b>0)&&(a

11、+b<=0)            D)a*b>0答案:D评析:选项A中,表达式表示的是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

12、)+p答案:C评析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常量“移动”,指向数组的其它元素。 (13)以下程序的输出结果是_。#include<stdio.h>#include<stdlib.h>void main()int a=-1,b=1,k;if(+a<0)&&!(b<=0)printf("d dn",a,b);elseprintf("%d %dn",b,a);system("pause");A)-1  l

13、0;   B)0  lC)1  0     D)0  0答案:C评析:逻辑运算符的优先次序如下:!(非)&&(与)(或),但本题需特别、注意的是短路的概念。 (14)下面程序的输出结果是_。#include<stdio.h>#include<stdlib.h>#define P1(x) printf(x)void main()char d="p"P1(d);P1("d");system("pause&quo

14、t;);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 

15、   double a;char b10;s;C)  struct ABC    double a;char b10;ABC s;D)  typedef  ABC    double a;char b10;ABC s;答案:B评析:定义一个结构体类型的变量,可采用三种方法:先定义结构体类型,再定义变量名;在定义类型的同时定义变量:直接定义结构类型变量,即不出现结构体名:选项B符合第三种定义方法。 (16)请读程序:#include<stdio.h>#include

16、<stdlib.h>#include<string.h>main()char*s1="AbCdEf", *s2="aB"s1+; s2+;printf("%dn",strcmp(s1,s2);system("pause");上面程序的输出结果是_。A)正数    B)负数    C)零    D)不确定的值答案:A评析:strcmp(X1,X2)是串比较函数,本题中“s1”、“s2”分别表示这两个串中第

17、一个字符的地址,s1+和s2+是将指针指向串的第二个字符,则*sl为“bCdEf,*s2为“B”。在字符串比较中,大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的,  sl>s2,返回值为正数。 (17)请读程序:#include<stdio.h>#include<stdlib.h>main()int a=5,b=7,c=9;printf("%d,%d,",a,b,c);printf("%d,%d,%d",a,b);system("pause");上面程序的输出结果是_。

18、A)5,7,9,5,7    B)5,7,5,7    C)5,7,不定,7,9    D)5,7,5,7,不定答案:D评析:printf函数按格式控制符的个数输出表列中对应的数据,若输出表列的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对应的输出表列的数据,格式控制符多的部分输出的数据是随机的。 (18)请读程序:#include<stdio.h>#include<stdlib.h

19、>int 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-);printf("%dn",r);system("pause");上面程序的输出结果是_。A)ll    B)20    C)2l    D)31答案:C评析:函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x,y+,x+y)是一个逗号表达式,它的

20、值应该等于x+y,所以整个表达式(x,y+,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。二、填空题(每空2分,共40分) (19)若运行时给变量x输入12,则以下程序的运行结果是  【8】  ;#include<stdio.h>#include<stdlib.h>main()int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%dn",y);system("p

21、ause");答案:【8】0评析:三目运算符的形式为(表达式1)7(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为x>t2为假,所以结果为x-12,即为0。 (20)下面程序的功能:输出100以内能被3整除且个位数为6的所有整数,请补充完整。#include<stdio.h>#include<stdlib.h>main() int i,j;for(i=0;   【12】 i+) j=i*10+6;if(  【13】 )continue;printf("%dn",j);system("pause");答案:【12】i<10【13】j3!=0评析:本题要求输出100以内能被3整除且个位数为6的所有整数,程序中j=i*10+6;语句是求个位数为6的整数,由此可得出程序的循环次数为i<lO。然后通过if语句判断整数是否能被3整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论