精选C语言试卷(带答案).
C语言试卷及答案

一、选择题。
(每空2分,共计40分)本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由(C )组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是(C )。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)printf ( “------------“) ;的正确说法是(C )。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出----------- 4.若x、y、z均为int 型变量,则执行下列语句后的z值为( A )。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为(D )。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是( B )。
A.’A’B.’D’的ASCⅡ码C.65 D.3 7.语句char str[20];说明str是一个字符串,最多能表示( B )。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是( B )。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是( C )。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是( A )。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是(C )。
(完整版)C语言试卷及答案

(完整版)C语言试卷及答案一、选择题(每题2分,共40分)1、C语言源程序的基本单位是( )A.程序行B.语句C.函数D.字符2、C语言规定:在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3、在下列字符列中,合法的标识符是( )A.p12&.aB.stud_100C. water$12D.88sum4、在C语言中,要求运算的数必须是整数的运算符是()A./B.!C.%D.= =5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a 的值是()A、3B、0C、9D、-126、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为()A、1B、2C、3D、47、执行下列程序时输入:1234567,程序的运行结果是()main(){int x,y;scanf(“%2d%*2c%1d”,&x,&y);printf(“%d\n”,x+y);}A.17B.46C.15D.98、下述程序的输出结果是() #includevoid main(){int x=-1,y=4;int k;k=++x<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}A.0,0,3B.0,1,2,C.1,0,3,D.1,1,29、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()main(){int x;scanf(“%d“,&x);if(x++>5)printf(“%d”,x);else printf(“%d\n”,x--);}A.7和5B.6和3C.7和4D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. 'a'<=c<= 'z'B. (c>= 'a')||(c<= 'z')C. ('a'<=c)and ('z'>=c)D. (c>= 'a')&&(c<= 'z')12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。
C语言复习卷带答案

姓名:__________________年级专业:__________________ 学号:__________________凡年级专业、姓名、学号错写、漏写或字迹不清者,成绩按零分记。
…………………………密………………………………封………………………………线…………………………《复习卷》试卷一、单选题(每题1分,共计30分) 1、下列选项中,不合法的变量是(D )。
A 、int x = 3; B 、char ch = 'c' C 、float f ; D 、case c;2、下列选项中,不合法的常量是(D )。
A 、2 B 、'\n' C 、'a' D 、'\483'3、关于#include<stdio.h>这句代码,下列描述中错误的是(C ) A 、"#"是预处理标志,用来对文本进行预处理操作 B 、include 是预处理指令 C 、一对尖括号可以去掉D 、stdio.h 是标准输入输出头文件4、假设a 、b 、c 、d 、m 、n 均为int 型变量,且a=5、b=6、c=7、d=8、m=2、n=2,那么逻辑表达式(m=a>b)&&(n=c>d)运算后,n 的值为( C )。
A 、0 B 、1 C 、2 D 、35、C 语言程序的三种基本结构是( A )。
A 、顺序结构,选择结构,循环结构 B 、递归结构,循环结构,转移结构 C 、嵌套结构,递归结构,顺序结构 D 、循环结构,转移结构,顺序结构6、关于下面的for 循环语句 int i,k; for(i = 0,k = -1;k = 1;i++,k++) printf(“*****”); 下列选项中,描述正确的是(B )A 、判断循环结束的条件非法B 、是无限循环C 、只循环一次D 、一次也不循环7、以下定义语句中,错误的是( D )。
C语言试卷01

C语言试题(一)1.下列关于C语言用户标识符的叙述中正确的是______。
A. 用户标识符中可以出现下划线和中划线(减号)B. 用户标识符中不可以出现中划线,但可以出现下划线C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2.以下叙述不正确的是A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包含一个main函数C. C程序的基本组成单位是函数D. 在C程序中,注释说明只能位于一条语句的后面3.下面能正确进行字符串赋值操作的语句是A.char s[5]={"ABCDE"};B.chars[5]={'A','B','C','D','E'};C.char *s;s="ABCDEF";D.char *s; scanf("%s",s);4.下列叙述中正确的是A. C语言编译时不检查语法B. C语言的子程序有过程和函数两种C. C语言的函数可以嵌套定义D. C语言的函数可以嵌套调用5.以下程序输出的结果是____。
main( ){ float a=5,b=4,d;d=(a>b);printf("%d\n",d);}A. 1B. 0C. 1.0D. 46.设int a=5,b=6,表达式(b--==6)?++a:--b的值是___A. 5B. 6C. 7D. 47.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。
for(i=0, j=10; j>=i; i++, j--)k=i+j;A. 10B. 20C. 8D. 08.能正确表示逻辑关系:"1≤a≤9"的C语言表达式是A. a>=1 or a<=9B. a>=1且a<=9C. a>=1&&a<=9D. 1≤a≤99.有以下程序main(){int i=0,k=2;if(++i)printf("%d",k);else printf("%d",-k)}执行后输出结果是A. -2B. 2C. 0D. 110.执行下面的程序段后,变量k中的值为int k=3, s[2];s[1]=k; k=s[1]*10;A.不定值 B.33 C.30 D.10 11.若有以下说明和语句,则输出结果是______。
c语言的考试题目答案及解析

c语言的考试题目答案及解析1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C解析:在C语言中,变量名必须以字母或下划线开头,不能以数字开头。
因此,选项A和D是不合法的。
选项B虽然以字母开头,但是数字紧跟字母,没有下划线或空格分隔,所以也是不合法的。
选项C 以下划线开头,符合变量命名规则。
2. 题目:以下哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A解析:在C语言中,字符串字面量应该用双引号括起来。
选项B使用了单引号,这是用于字符字面量的,而不是字符串。
选项C和D是重复的,并且由于格式问题,它们可能没有正确显示,但假设它们是正确的字符串字面量,那么答案应该是A,因为它是第一个出现的合法字符串字面量。
3. 题目:以下哪个选项是C语言中正确的函数声明?A. int function(int x) {}B. void function() {}C. int function(int x, int y) {}D. All of the above答案:D解析:在C语言中,函数声明可以包含参数列表,也可以没有参数。
选项A和C都包含了参数列表,并且参数类型是int,这是合法的。
选项B没有参数列表,并且指定了返回类型为void,这也是合法的。
因此,所有选项都是正确的函数声明。
4. 题目:以下哪个选项是C语言中正确的条件语句?A. if (x > 0) { ... }B. if x > 0 { ... }C. if (x > 0) { ... } else { ... }D. if (x > 0) { ... } elseif { ... }答案:C解析:在C语言中,条件语句必须使用if关键字,并且条件表达式需要用括号括起来。
c语言试卷含答案

一、选择题(26分)1. 正确的C语言标识符是(A)。
A._buy_2 B.2_buy C.?_buy D.buy?2. 以下选项中,合法转义字符的选项是(A)。
A.’\\’ B.’\018’ C.’xcb’ D.’\ab3、下列语句中,错误的是(B )A、#define PIB、#include <>;C、if(2);D、for(;;) if(1) break;4、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()A、 a>=10 or a<=0B、 a>=0|a<=10C、 a>=10 &&a<=0D、 a>=10‖a<=05、以下对break语句使用的正确描述是()A、可以出现在程序中的任何位置B、只能出现在循环结构中或switch结构中C、只能出现在switch结构中D、只能出现在循环结构中6. C语言程序的基本单位是(C)。
A.程序行 B.语句 C.函数 D.字符7、已知各变量的类型说明如下:()int m=6,n, a, b;unsigned long w=8;double x=, y=;则以下符合C语言语法的表达式是(A)。
A.a+=a-=(b=2)*(a=8) B. n=n*3=18C.x%3 D.y=float (m)8、已有定义:char x[]=“ab”,y[ ]={‘a’,’b’ };,以下叙述中正确的是( C)A、数组x和y的长度相同B、x数组长度小于y数组长度C、x数组长度大于y数组长度D、上述说法都不对9、设有定义“int x=3,y,*p=&x”,则下列语句中使y不为3的语句是(D )A、y=*&xB、y=*pC、y=xD、y=&x10、设x、y、z均为int型变量,则执行语句:x=y=3;z=++x||++y;后,y的值为()A、不定值B、4C、3D、111.有如下程序段:int x1,x2;char y1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是(A)。
c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。
A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。
A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。
A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。
A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。
A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。
A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。
C语言试卷(含答案)

一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。
A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。
A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。
A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。
inta=5;while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。
A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。
A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2006-2007学年第二学期考试试卷A卷考试科目C语言程序设计考试方式闭卷完成时限2小时拟题人审核人批准人2007年7 月 5 日机械、电气、信息、生化、轻工、经管、理学院2006年级各理工科专业说明:1.应将全部答案写在答卷纸对应的题号处;否则作无效处理;2.编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;3.考试完成后,必须将试卷与答卷同时交回。
一、判断题(10小题,每题1分,共10分;用√表示正确,用×表示错误)1.在循环体内使用break语句和continue语句的作用相同。
2.函数返回值的类型最终取决于函数定义时形参的类型。
3.else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。
4.从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。
5.1/2的结果是0,所以1.0/2的结果也是0。
6.a=b=c=5可以理解为a=(b=(c=5))。
7.假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。
8.for(;;)等价于while(1)语句。
9.假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。
10.char *sp ={"welcome"};可以写成char *sp="welcome"; 。
二、单选题(16小题,每题1分,共16分)1.以下数组定义中错误的是:(A) int x[][3] ={0};(B) int x[2][3]={{1,2},{3,4},{5,6}};(C) int x[][3]={{1,2,3},{4,5,6}};(D) int x[2][3]={1,2,3,4,5,6};2.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为:(A)EOF (B)NULL (C) 0 (D)非0值3.有以下程序:main(){int y=10;while(y--) ;printf(“y=%d\n”,y);}程序执行后的输出结果是:(A) y=0; (B)y=-1;(C) y=1 (D)while构成无限循环4. 若有以下宏定义:#define N 2#define Y(n) (N+1)*n则执行语句int z; z=2*N+Y(5);后的值是(A) 50 (B)34 (C)19 (D)无定值5.以下叙述中错误的是:(A)c程序必须由一个或者一个以上的函数组成。
(B)函数调用可以作为一个独立的语句存在。
(C)若函数有返回值,必须通过return 语句返回。
(D)函数形参的值也可以传回给对应的实参。
6.设有如下定义的变量union data{ int i;char ch;float f;}b;则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,float类型占4个字节):(A) 4 (B)5 (C) 6 (D)77.以下叙述中错误的是:(A)c程序中的#include 和#define 行均不是c语句(B)除逗号运算符外,赋值运算符的优先级最低(C)c程序中, “j++;”是赋值语句(D)c程序经过编译、连接步骤之后,才能形成一个真正可执行的二进制机器指令文件。
8. 能正确表示a 和b 同时为正或同时为负的逻辑表达式是:(A) (a>=0||b>=0)&&(a<0||b<0)(B)(a>=0&&b>=0)&&(a<0&&b<0)(C) (a+b>0)&&(a+b<=0)(D) a*b>09.对于一个正常运行的c程序,以下叙述中正确的是:(A)程序的执行总是从main函数开始,在main函数结束。
(B)程序的执行总是从程序的第一个函数开始,在main函数结束。
(C)程序的执行总是从main函数开始,在程序的最后一个函数中结束。
(D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束。
10.设变量x和y均已经正确定义并赋值。
以下if语句中,在编译时将产生错误信息的是:(A)if(x++); (B)if(x>y &&y!=0)(C) if(x>0) x-- (D)if(y<0){;}else y++; else x++;11.设已有定义:float x; 则以下对指针变量p进行定义且赋初值的语句中正确的是:(A)float *p=1024; (B)int *p=(float)x;(C)float p=&x; (D)float *p=&x;12.有以下程序:main(){ int i,j;for(i=1;i<4;i++){ for(j=i;j<4;j++) printf(" %d*%d=%d ",i,j,i*j);printf("\n");}}程序运行后的输出结果是:(A)1*1=1 1*2=2 1*3=3 (B)1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9(C)1*1=1 (D)1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=913.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是:(A)大写字母(B)连接符(C)数字字符(D)下划线14.设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是:(A)k++ (B)k+=1 (C)++k (D)k+115.有以下程序main(){ char ch[]="uvwxyz",*pc;pc=ch;printf(" %c\n",*(pc+5));}程序运行后的输出结果是:(A)z (B)0(C)元素ch[5]的地址(D)字符y的地址16.有以下函数:int fun(char *s){ char * t=s;while(*t++);return (t-s);}该函数的功能是:(A)比较两个字符串的大小(B)计算s所指向字符串占用内存字节的个数(C)计算s所指字符串的长度(D)将s所指字符串复制倒字符串t中16.有以下函数:int fun(char *s){ char * t=s;while(*t++);return (t-s);}该函数的功能是:(A)比较两个字符串的大小(B)计算s所指向字符串占用内存字节的个数(C)计算s所指字符串的长度(D)将s所指字符串复制倒字符串t中三、基础填空题(14空,每空1分,共14分)1.以下程序的输出结果是。
#include <string.h>main(){ printf(“%d\n”,strlen("IBM\n012\n"));}2.执行以下程序后的输出结果是main(){ int a=10;a=(3*5,a+4);printf("a=%d\n",a);}3.排序是数据处理中最常见的问题,它是将一组数据按递增或者递减的次序排列。
排列的算法很多。
常用的算法有法和选择法。
4.设有定义“char web[20];”,要将字符串“”赋值给字符数组web的语句是。
5.一个函数用于接收一个字符和一个整数,并返回一个字符,函数名为love_c,则该函数的原型说明为。
6.c语言规定,简单变量作函数参数时,他和对应的形参之间的数据传递方式是。
7.判断字符变量x是小写英文字母字符的C语言表达式是。
8.程序中调用了库函数strcmp,必须包含头文件。
9.若x=13,y=25,z=-17,则表达式((p=(x<y)?x:y)<z?p:z)的值为。
10.下列程序段的的输出结果是。
char a=010,b=10;printf(" %d\n",a&b<<2);11.表达式中的类型转换分为两种:一种是隐式数据类型转换;另一种是数据类型转换。
12.数组是顺序存储结构,它的存储分配方式是“静态”的。
是一种动态的数据结构,它由若干个结点链接而成,与数组最大的不同是结点在内存中并不占据连续的存储空间。
13.有定义: int a[][3]={1,2,3,4,5,6,8,9,10};则printf("%d",*(*(a+1)+2));语句的输出结果为。
14.以下程序的输出结果是。
main(){ int a,b,c=240;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}四、程序填空题(10空,每空2分,共20分)1.下面程序运行后输入以-1结束的一批整数,输出其中的最大值。
例如:输入-3 -8 -10 -1后,输出:-3#include<stdio.h>void main(){ int max,x;scanf("%d",&x);if(x!=-1){___ (1) ___;while(__ (2) ____){if(max<x) max =x;___ (3) ____;}printf(" max=%d\n",max);}}(1)(A)x=max (B)max =x(C) x++ (D)max=0(2)(A)x!=-1 (B)max>=0(C)x==-1 (D)max!=-1(3)(A)max=max+1 (B) x=x+1(C)scanf(“%d”,&x); (D) else max =-12.下面程序通过字符指针实现,将s1指向的字符串“I have a dream!”反向拷贝到s2中。
#include<stdio.h>#include <stdlib.h>void main(){char *s1="I have a dream! ",*s2,*t;int len;len= ___ (4) ____;s2=(char *)calloc(len+1,sizeof(char));t=s2;while(*s1!=’\0’)s1++;do{s1--;len--;__ (5) ____;s2++;}while(len>0);*s2=’\0’;s2=t;puts(s2);}(4)(A) strcpy(s1) (B)st(C) *s1 (D) strlen(s1)(5)(A)*s1=*s2 (B)*s2=*s1(C)&s2=&s1 (D)&s1=&s23.建立一个链表,每个结点包括:学号、姓名、性别、年龄。