C试题
(完整版)C语言试题库(完整版)

C语言试题库一、单项选择第一章 C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、 C程序的每行中只能写一条语句。
C、 C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序。
c语言试题及答案

1、以下正确的说法是( B )(A) 用户若需要调用标准库函数,调用前必须重新定义(B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义(C) 系统根本不允许用户重新定义标准库函数(D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调2、以下正确的函数声明形式是( A )(A) double fun(int x, int y)(B) double fun(int x; int y)(C) double fun(int x, int y);(D) double fun(int x,y);3、以下正确的函数形式是( D )(A) double fun(int x, int y) { z=x+y; return z;}(B) fun(int x,y) { int z; return z;}(C) fun(x,y) { int x,y; double z; z=x+y; return z;}(D) double fun(int x, int y) { double z; z=x+y; return z;}4、以下正确的说法是( A )在C语言中(A) 实参和与其对应的形参各占用独立的存储单元(B) 实参和与其对应的形参共占用一个存储单元(C) 只有当实参和与其对应的形参同名时才共占用存储单元(D) 形参是虚拟的,不占用存储单元5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A )该函数(A) 没有返回值(B) 返回若干个系统默认值(C) 能返回一个用户所希望的函数值(D) 返回一个不确定的值6、以下不正确的说法是( B )C语言规定(A) 实参可以是常量、变量和表达式(B) 形参可以是常量、变量和表达式(C) 实参可以为任意类型(D) 形参应与其对应的实参类型一致7、以下正确的说法是( C )(A) 定义函数时,形参的类型说明可以放在函数体内(B) return后边的值不能为表达式(C) 如果函数值的类型与返回值类型不一致,以函数值类型为准(D) 如果形参与实参的类型不一致,以实参类型为准8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B )(A) 地址传递(B) 单向值传递(C) 由实参传给形参,再由形参传回给实参(D) 由用户指定传递方式9、以下程序有语法性错误,有关错误原因的正确说法是( C )void main(){int G=5,k;void prt_char();......k=prt_char(G);......}(A) 语句void prt_char(); 有错,它是函数调用语句,不能用void说明(B) 变量名不能使用大写字母(C) 函数说明和函数调用之间有矛盾(D) 函数名不能使用下划线10、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )(A) float型(B) int型(C) long型(D) double型11、C语言规定,函数返回值的类型是由( D )(A) return语句中的表达式类型所决定(B) 调用该函数时的主调函数类型所决定(C) 调用该函数时系统临时决定(D) 在定义该函数时所指定的函数类型所决定12、下面函数调用语句含有实参的个数为( B )func((exp1,exp2),(exp3,exp4,exp5));(A) 1(B) 2(C) 4(D) 513、以下错误的描述是( D )函数调用可以(A) 出现在执行语句中(B) 出现在一个表达式中(C) 做为一个函数的实参(D) 做为一个函数的形参14、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
C语言试题

C语言习题精选第一章、程序设计基本概念一.选择题1.C语言规定,必须用(C)作为主函数(A)function (B)include (C)main(D)stdio2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个(B),一个C程序总是从(B)开始执行。
(A)过程(B)主函数(C)函数(D)include3.! C源程序是由(A)构成的(A)函数(B)函数和过程(C)超文本过程(D)子程序4.(A)是C程序的基本构成单位(A)函数(B)函数和过程(C)超文本过程(D)子程序5.! 下列说法正确的是(C)(A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可(B)一个函数的函数体必须要有执行部分,可以没有变量定义(C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数(D)以上都不对6.下列说法正确的是(D)(A)main函数必须放在C程序的开头(B)main函数必须放在C程序的最后(C)main函数可以放在C程序的中间部分,即在一些函数之前在另一个函数之后,但在执行C程序时是从程序开头执行的(D)main函数可以放在C程序的中间部分,即在一些函数之前在另一些函数之后,但在执行C程序时是从main函数开始的7.下列说法正确的是(C)(A)在执行C程序时不是从main函数开始的(B)C程序书写格式严格限制,一行内必须写一个语句(C)C程序书写格式自由,一个语句可以分写在多行上(D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号8.在C语言中,每个语句和数据定义是用(C)结束(A)句号(B)逗号(C)分号(D)括号9.下列字符串是标识符的是(A)(注:以字母或下划线开头)(A)_HJ (B)9_student (C)long(D)LINE 110.以下说法正确的是(C)(A)C语言程序总是从第一个定义的函数开始执行(B)在C语言程序中,要调用的函数必须在main()函数中定义(C)C语言程序总是从main()函数开始执行(D)C语言程序中的main()函数必须放在程序的开始部分11.(B)不是C语言提供的合法关键字()(A)switch (B)print (C)case(D)default12.C语言提供的合法关键字是(A)(A)break (B)print (C)funition(D)end13.C语言提供的合法关键字是(A)(A)continue (B)procedure (C)begin(D)append二.填空题1.一个C源程序至少包含一个(主函数),即(main())2.!一个函数由两部分组成,它们是(函数的说明部分)和(函数体)3.!函数体一般包括(变量的定义部分)和(执行部分)4.!函数体的范围是(最外层的一对大括弧内的部分)5.!C语言是通过(输入和输出函数)来进行输入和输出的6.!在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个(函数)7.C语言的关键字都用(小写){大写或小字}8.!主函数名后面的一对圆括号中间可以为空,但一对圆括号不能(省)第二章、 C程序设计的初步知识一.选择题1.C语言中不能用来表示整常数的进制是(D)(A)十进制(B)十六进制(C)八进制(D)二进制2.在C语言中,反斜杠字符是(D)(A)\n (B)\t (C)\v (D)\\3.在ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码(A)(A)大32 (B)大64 (C)小32 (D)小14.设d为字符变量,下列表达式不正确的是(C)(A)d=97 (B)d=‟a‟ (C)d=”a”(D)d=‟g‟5.10+‟a‟+1.5-567.345/‟b‟的结果是(B)(A)long (B)double (C)int (D)unsigned float6.!在C语言中,运算对象必须是整型数的运算符是(A)(A)% (B)/ (C)%和/ (D)**7.为表示关系x>=y>=z,应使用C语言表达式(A)(A)(y<=x)&&(y>=z) (B)(x>=y)AND(y>=z)(C)(x>=y>=z) (D)(x>=y)&(y>=z)8.若欲表示在if后a不等于0的关系,则能正确表示这一关系的表达式为(D)(A)a<>0 (B)!a (C)a=0 (D)a!=09.?下列常数中,合法的C常量是(A)(A)”x-y” (B)‟105‟ (C)‟Be‟ (D)7ff10.?下列常数中,合法的C常量是(A)(A)-0. (B)‟105‟ (C) …AB‟(D)3+511.下列常数中,合法的C常量是(A)(A)‟\n‟ (B)e-310 (C)‟DEF‟ (D)‟1234‟12.下列常数中,不合法的C常量是(B)(A)-0x2a1 (B)lg3 (C)‟[… (D)”CHINA”13.下列常数中,不合法的C常量是(B)(A)-0x3b1 (B)123e+2.3 (C)‟}‟ (D)6e+714.?下列符号中,可以作为变量名的是(C)(A)+a (B)12345e (C)a3B (D)5e+015.写出下面程序的输出结果(A)main(){int x,y,z;x=y=1;z=x++-1;printf(“%d,%d\t”,x,z);z+=-x+++(++y||++z);printf(“%d,%d”,x,z);}(A)2,0 3,-1 (B)2,1 3,0 (C)2,0 2,1 (D)2,10 ,116.写出下面程序的输出结果(D)main(){int x=40,y=4,z=4;x = y = =z;printf(“%d”,x);x = x = = (y-z);printf(“%d”,x);}(A)4 0 (B)4 1 (C)1 1 (D)1 017.写出下面程序的输出结果(A)main(){int I,j;I=16; j=(I++)+I;printf(“%d”,j);I=15;printf(“%d %d”,++I,I);}(A)32 16 15 (B)33 15 15 (C)34 15 16(D)34 16 1518.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值为(C)(A)1 (B)2 (C)2.0 (D)2.519.?下列程序的执行结果是(B)#define sum 10+20main(){ int b=0,c=0;b=5;c=sum*b;printf(“%d”,c);}(A)100 (B)110 (C)70 (D)15020.表达式(double)(20/3)的值为(B)(A)6 (B)6.0 (C)2 (D)3二.填空题1.如果int I=3;则k=(I++)+(I++)+(I++),则k =(9),I=(6);2.?如果int I=3;则k=(I++)+(++I)+(I++),则k=(12), I=(6);3.?如果int I=3;则k=(++I)+(++I)+(I++),则k=(15),I=(6);4./如果int I=3;则k=(++I)+(++I)+(++I),则k=(18),I=(6);5.已知在ASCII字符集中,字母A的序号为65,下面程序的输出结果为(K,5)main(){char c=‟A‟; int I=10;c = c+10;I = c%I;Printf(“%c,%d\n”,c,I); }6.!C语言的数据类型有四大类,其分别为(基本数据类型),(构造类型),(指针),(空类型)。
C语言程序设计试题及答案解析

C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
C语言试题及答案

《C语言程序设计》试题四一.单项选择题1.运算符___________的优先级最高。
A.[ ]B.+= C.?: D.++2.main( ){ int n;( n=6*4,n+6),n*2;printf(―n=%d\n‖,n); }此程序的输出结果是______________.A.30 B. 24 C.60 D. 483.若有如下定义,则__________是对数组元素的正确的引用。
.int a[10] , *p ;p=a ;A. *&a[10]B.a[11] C. *(p+11) D. *p *p *p4.设整型变量n的值为2,执行语句―n+=n-=n*n;‖后,n的值是__________A. 0B. 4C. - 4D. 25.各种基本数据类型的存贮空间正确的长度排列为__________。
A.Char<long<int<float<do ubleB.Double<float<long<int< charC.Char<int<long<float<do ubleD.Float<int<long<char<do uble 6.下面的变量说明中_____________是正确的。
A.char:a, b, c;B.char a; b; c; C.chara, b, c; D.char a, b, c7.表达式y=(13>12?15:6>7?8:9)的值为____________ 。
A9 B 8C 15 D. 18.若x=5,y=3 则y*=x+5; y的值为_______________.A. 10B. 20C. 15D. 309.能正确表示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>010.C语言中,合法的字符型常数是_________。
完整word版,C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
C语言试题库(含答案)

D、print f("%c\n",class[2].name[0]);
标准答案:D
【5】设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是。
A、f+=g
B、f-=g+5
C、f*=g-5
D、f/=g*5
标准答案:A
if(ch=='/')w=a/b;
B、B)if(ch=='*')w=a*b;
else if(ch=='/')w=a/b;
if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
C、if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
if(ch=='*')w=a*b;
A、15
B、10
C、25
D、20
标准答案:A
【15】程序段的基本结构中,不包含()。
A、函数结构
B、循环结构
C、顺序结构
D、分支结构
标准答案:A
【1】执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。
A、1
B、2
C、1,2
D、12
标准答案:c
【3】若用数组名作为函数调用的实参,传递给形参的是()。
#include<stdio.h>
main()
{int i=1;
c语言试题

编程序
• 1、从键盘上输入两个整数,比较两个数的大小, 并输出较大者 • #include<stdio.h> • void main() • { float f1,f2,t; • scanf("%f%f",&f1,&f2); • if(f1>f2)printf("%f\n",f1); • else printf("%f\n",f2); • }
• 10.若有说明语句:int a[][3]={1,2,3,4,5,6}; 则a数组第一维的大小是 。 • A. 1 B. 2 C.3 D. 无确 定值 • 11. C语言允许函数值类型的缺省定义,此 时该函数值隐含的类型是______。 • A、float型 B、long型 C、int型 D、 double型
• 4、长度为10的int类型数组和长度为3 的 double类型数组,哪一个数组占用的内存 空间多(4) • 5、字符数组a)char a[]=―one‖;占多少内存 字节(5) • 6、如果ch<‗A‘或ch>‗Z‘,那么,表达式 ch>=‗A‘&& ch<=‗Z‘的值是(6)
• 7、编写C语句,交换a、b的值(7) • 8、为了使用库函数getchar(),必须在程序 中包含命令(8) • 9、设int numbers[5]={17,25,30,56,58};编 写C的for语句,将数组numbers中的每个元 素减去3。使用变量i跟踪下标。(9)
• • • • • • • • #include<stdio.h> void main() { int i,a[10],sum; for(i=0;i<10;++i)scanf(―%d‖,&a[i]); sum=a[0]; for(i=1;i<10;++i)if(a[i]>sum)sum=a[i]; printf(―sum=%d\n‖,sum); }
C语言试题

C语言试题C语言试题大全引导语:c语言相关的试题都会考察什么内容呢?以下是店铺整理的C语言试题大全,欢迎参考阅读!一、填空题(10分,第1小题4分,其余每空1分)1.设有下列登记表,请采用最佳方式定义一种数据类型来表示这些数据的集合。
其中,配偶姓名用spouseName表示,子女人数用children表示。
2.C语言中构造数据类型包括、、。
3.C语言中用_______表示逻辑值“假”,用________表示逻辑值“真”。
4.char*p[10];这条语句的含义是:。
二、判断下列问题描述正确与否,正确的打“√”,错误的打“×”。
(4分,每题1分)1.如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0值。
()2.在C语言中,可以用typedef定义一种新的数据类型。
()3在C语言中,实参与其对应的形参各占独立的存储单元。
()4.在C语言中,函数的定义可以嵌套。
()三、选择题:(10分,每题2分)1.若用数组名作为函数调用时的实参,则实际上传递给形参的是()。
A.数组的首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的'个数2.判断两个字符串s1和s2相等,应当使用( )。
A.if (s1 == s2)B. if (s1 = s2)C.if (!strcmp(s1,s2))D. if (strcmp(s1,s2))3.在while(x)语句中的x与下面条件表达式等价的是:。
A. x!=0B. x==1C. x!=1D. x==04.二维数组a有m行n列,则在a[i][j]之前的元素个数为()。
A. j*n+iB. i*n+jC. i*n+j-1D. i*n+j+15.设有声明语句:int a=1,b=0;则执行以下语句后输出为:。
switch (a){case 1:switch (b){case 0:printf("**0**");break;case 1:printf("**1**");break;}case2: printf("**2**");break;}A.**0**B.**0****2**C.**0****1****2**D.有语法错误四、写出下列程序的运行结果。
C语言全国试题(五-循环结构程序设计)

填空题(全国二级C 2008C2-8)
若有定义:int k;,以下程 序段的输出结果是__#_#_2_#_#_4__。
for (k=2; k<6; k++,k++ ) printf (“##%d”,k);
选择题(全国二级C 2007Q1-22)
C 有以下程序,程序的运行结果是 。
#include <stdio.h>
{ int i;
for ( i=1 ; i<=40; i++)
{ if (i++%5==0)
if (++i%8==0)printf("%d ",i); }
printf("\n"); }
A) 5
B) 24
C) 32
D) 40
选择题(全国二级C 2005Q1-27)
设变量已正确定义,则以下能正确
计算f=n!的程序段是 D 。
有以下程序段,且变量已正确定义和赋值
for ( s=1.0,k=1;k<=n; k++ ) s=s+1.0/(k*(k+1));
printf(“s=%f\n\n”,s); 请填空,使下面程序段的功能与之完全相同
s=1.0; k=1; while ( ___k_<_=_n__ ) { s=s+1.0/(k*(k+1)); __k_+_+__ ; } printf(“s=%f\n\n”,s);
以下程序的功能是计算: s=1+12+123+1234+12345。请填空。 main( ) { int t=0, s=0, i; for(i=1; i<=5; i++)
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 试题及答案

C++程序设计模拟试卷(一)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1. 编写C++程序一般需经过的几个步骤依次是()A. 编辑、调试、编译、连接B. 编辑、编译、连接、运行C. 编译、调试、编辑、连接D. 编译、编辑、连接、运行答案:B解析:(P21)经过编辑、编译、连接和运行四个步骤。
编辑是将C++源程序输入计算机的过程,保存文件名为cpp。
编译是使用系统提供的编译器将源程序cpp生成机器语言的过程,目标文件为obj,由于没有得到系统分配的绝对地址,还不能直接运行。
连接是将目标文件obj转换为可执行程序的过程,结果为exe。
运行是执行exe,在屏幕上显示结果的过程。
2. 决定C++语言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D解析:(P51)函数的返回值类型由定义函数时的指定的数据类型决定的。
A项的表达式的值要转换成函数的定义时的返回类型。
3. 下面叙述不正确的是()A. 派生类一般都用公有派生B. 对基类成员的访问必须是无二义性的C. 赋值兼容规则也适用于多重继承的组合D. 基类的公有成员在派生类中仍然是公有的答案:D解析:(P136)继承方式有三种:公有、私有和保护。
多继承中,多个基类具有同名成员,在它们的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。
赋值兼容规则是指派生类对象可以当作基类对象使用,只要存在继承关系,所以单继承或多继承都适用。
基类中的公有成员采用私有继承时,在派生类中变成了私有成员,所以D项错误。
4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()A. 类B. 对象C. 函数体D. 数据块答案:A解析:(P39)类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。
c语言试题及答案大全

c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。
B. C语言可以被编译成机器语言执行。
C. C语言的语法和C++完全相同。
D. C语言不支持面向对象的编程。
答案:B. C语言可以被编译成机器语言执行。
2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。
其中,n由用户输入。
答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。
素数是指除了1和自身外,无法被其他整数整除的整数。
答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。
C语言试卷(含答案)

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)< p="">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语言代码段的输出结果是()。
C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 2 分,共 40 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 0o123B 0123C 0x123D 123答案:B解释:在 C 语言中,八进制整数以数字 0 开头,所以 0123 是八进制整数。
3、以下变量定义中,合法的是()A int a=b=1;B char a='\0';C float 2a;D double a&;答案:B解释:A 选项中不能连续赋值;C 选项变量名不能以数字开头;D 选项变量名不能包含特殊字符&。
4、若有定义:int a=5, b=2; 则表达式 a/b 的值是()A 25B 2C 20D 3答案:B解释:C 语言中,两个整数相除结果为整数,舍去小数部分。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2对应的值是 3 。
6、以下关于函数的叙述中,正确的是()A 函数可以嵌套定义B 函数可以嵌套调用C 函数可以没有返回值D 以上都不对答案:C解释:函数不能嵌套定义,但可以嵌套调用。
函数可以没有返回值,此时函数类型为 void 。
7、若有以下函数定义:```cint fun(int a, int b){return a + b;}```则调用 fun(1, 2)的返回值是()A 1B 2C 3D 4答案:C解释:函数 fun 实现了两个整数的相加,所以 fun(1, 2)的返回值是3 。
8、以下关于指针的叙述中,错误的是()A 指针可以指向变量B 指针可以指向数组C 指针可以指向函数D 指针不可以进行加减运算答案:D解释:指针可以进行加减运算,但运算的结果要根据指针所指向的数据类型来确定。
c语言试题

B.20 50
C.30 50
D.30 20
33.如果程序中有语句FILE *fp;fp=fopen("abc.txt", "w");,则程序准备做______。
A.对文件读写操作
B.对文件读操作
C.对文件写操作
D.对文件不操作
问答题
1.从键盘输入任意个整数,输入-1时结束,分别统计其中奇数和偶数的个数。
C.char a3[15]; a3="Hello World";
D.char a4[10]={ "Hello World"};
21.若有说明:int a[3][4];则对a数组元素的正确引用是______。
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
D.a(2)(1)
22.下面程序的运行结果是______。#include "stdio.h" main() { char s[]="012xy"; int i,n=0; for(i=0;s[i]!=0;i++) if(s[i] > = 'a'&&s[i]< = 'z') n++; printf("%d\n",n); }
D.struct student {int num; char name[10]; int age;}; student stu;
29.当定义一个共用体变量时,系统为它分配的内存空间是______。
A.共用体中第一个成员所占用的空间
B.共用体中所有成员所占用空间之和
C.共用体中空间占用最大者
C语言试题公开

A. 3 B )4 C. 5 D.不定
14.执行下面程序段时输出的结果是
int i=5;
switch(i)
{ case 5:
case 6: i+=5;
case 7: break;
case 8: i+=5;
}
printf("i=%d",i)
A. i=5 B. i=10 C. i=15 D. i=20
则数组str得到的值为__ ____________。
4.有以下说明:step是一个有4个实型元素的数组,元素值分别为1.9, -2.33, 0, 20.6。则正确的C语言说明语句为__________________________。
5.调用fopen函数以文本方式打开文本文件aaa.txt如下
FILE *fp=fopen("aaa.txt",____);
printf("%s\n",p->name); //屏幕显示___
printf("%d\n",q[2]); //屏幕显示___
printf("%d\n",*(q+3)); //屏幕显示___
}
4.读懂源程序,并写出正确结果。
f(int a)
{auto b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
main()
{int a=5,i;
for(i=0;i<3;i++)
printf("%d ",f(a) );
}
C试题附答案

B)构造函数D)普通函数C)析构函选择题:1. 关于类和对象不正确的说法是(C)A类是一种类型,它封装了数据和操作B)对象是类的实例C)一个类的对象只有一个D)一个对象必属于某个类2. 在类定义的外部,可以被访问的成员有(C)A)所有类成员B) private 或protected 的类成员C) public 的类成员D) public 或private 的类成员3. 关于this指针的说法错误的是(A)A)this 指针必须显示说明B)当创建一个对象后,this指针就指向该对象C)成员函数拥有this指针D)静态成员函数不拥有this指针4. 声明一个类的对象时,系统自动调用(B )函数,撤消对象时,系统自动调用(C )函数A)成员函数数5. 下面对构造函数的不正确描述是(回值C)构造函数可以重载参数6. 下面对析构函数的正确描述是(C)A)系统不能提供默认的析构函数义C)析构函数没有参数以设置默认参数7. 对静态成员的不正确描述是(C )A静态成员不属于对象,是类的共享成员D)构造函数可以设置默认B)析构函数必须由用户定D)析构函数可B)静态数据成员要在类外定义和初始化C)调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针D)非静态成员函数也可以操作静态数据成员8. 下面选项中,不是类的成员函数为(C)A构造函数B)析构函数C)友元函数D)缺省参数的构造函数方言9. 下面对友元的错误描述是(D)A)关键字friend 用于声明友元B)一个类的成员函数可以是另一个类的友元C)友元函数访问对象的成员不受访问特性影响D)友元函数通过this指针访问对象成员10. 在C++中,类与类之间的继承关系具有( C )A)自反性B)对称性C)传递性D)反对称性11. 下列关于类的继承描述中,( A )是错误的A派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数B)派生类也是基类,但基类不一定具有派生类的全部属性和方法C)继承描述类的层次关系,派生类可以具有与基类相同的属性和方法D)一个基类可以有多个派生类,一个派生类可以有多个基类12. 当一个派生类仅有继承一个基类时,基类中的所有公有成员成为派生类的(A)A)public 成员B) private 成员C) protected 成员D)友元13. 当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的(B)A)public 成员B) private 成员C) protected 成员D)友元14. 不论派生类以何种方法继承基类,都不能使用基类的( B )A) public 成员B) private 成员C) protected 成员D) public 成员和protected 成员15. 下面描述中,错误的是(BC )(两个答案)A)在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问B)在基类定义的public和protected 成员在私有继承的派生类中可见,在类外可以被访问C)在基类定义的public和protected 成员在保护继承的派生类中不可见D)在派生类中不可见的成员要变成可访问的,需要进行访问声明16. 在C++中,不能被派生类继承的函数是(BC )(两个答案)A)成员函数B)构造函数C)析构函数D)静态成员函数17. 在创建派生类对象时,构造函数的执行顺序是(D)A)对象成员构造函数、基类构造函数、派生类本身的构造函数B)派生类本身的构造函数、基类构造函数、对象成员构造函数C)基类构造函数、派生类本身的构造函数、对象成员构造函数D)基类构造函数、对象成员构造函数、派生类本身的构造函数18. 当不同的类具有相同的间接基类时,有特点(AD )(两个答案)A)各派生类对象将按继承路线产生自己的基类版本B)派生类对象无法产生自己的基类版本C)为了建立惟一的间接基类版本,在基类定义前加virtual即可D)为了建立惟一的间接基类版本,应该声明虚继承19. 在C++中,要实现动态联编,必须使用(D )调用虚函数A)类名B)派生类指针C)对象B )构造函数 D )析构函数C )成员函 A) void fun ()=0; C) virtual void fun(); D) virtual void fun(){}; 23.若一个类则该类称为( A )基类 B) 纯基类 C )派生 24.假设A 为抽象类,下列声明 B )是正确的 A) A fun (i nt); B) A *p; C) int fun(A); 25.下面描述中,正确的是( BD )(两个答案) A )虚函数是没有实现的函数 B )纯虚函数的实现在派生类中 C )抽象类是没有纯虚函数的类 D)抽象类指针可以指向不同的派生类 A 普通函数 数 21. 在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺 序和函数的返回值( B ) A )不同 B )相同 C )相容 D )部分相同 22. 下面函数原型声明中,( B )声明了 fun 为虚函数 B) virtual void fun( )=0;D )抽象类D) A Obj;26.关于函数模板,描述错误的是A)函数模板必须由程序员实例化为可执行的函数模板B)函数模板的实例化由编译器实现C)一个类定义中,只要有一个函数模板,则这个类是类模板D)类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化27.下列的模板说明中,正确提(AD )(两个答案)A)template <type name T1, type name T2>B)template <class T1, T2>C)template <class T1, class T2>D)template <type name T1; type name T2>28.假设有函数模板定义如下:Template <type name T>Max(T a, T b, T &c){ c=a+b; }下列选项正确的是( AD )(两个答案)A)float x,y; float z; Max(x,y,z);B)int x,y, z; Max(x,y,z);C)int x,y; float z; Max(x,y,z);D)float x; int y, z; Max(x,y,z);29.关于类模板,描述错误的是( D )A)一个普通基类不能派生类模板B)类模板从普通类派生,也可以从类模板派生A基类a派生类C)模板类a对象A)标准类B)标准对象数D)标准类模板C)标准函32. 下列类中(BD (两个答案)不是输入/输出流类iostream的派生类A) fstream strstream33. 在下列选项中(B) ofstreamD)ostrstreamBCDC)(三个答案)是ostream类的对象D)函数的类模板参数须通过构造函数实例化30. 建立类模板对象的实例化过程为( C )B)构造函数a对象D)模板类a模板函数31. 在C++中,容器是一种(D )A) cin B) cerr C)clog D) cout34. read函数的功能是从输入流中读取( D )A)一个字符B)当前字符C)一行字符D)指定若干个字符35. 下列选项中,用于清除基数格式位置以十六制输出的语句是( B )A) cout<<setf(ios::dec, ios::basefield);B) cout<<setf(ios::hex, ios::basefield);C) cout<<setf(ios::oct, ios::basefield);D) cin> >setf(ios::hex, ios::basefield);36.下列格式控制符, 在iostream.h中定义的是)AD )(两个答,在案)ioma nip.h中定义的是(BC )(两个答案)A) endl B) setfill C)setw D) oct37.下列串流类,在strstream.h 中定义的是(BD )(两个答案),在sstream 中定义的是(AC )A) istri ngstream B) istrstream C) ostri ngstream D) ostrstream38.包含类fstream定义的头文件是) A )A) fstream.h B) ofstream.h C)ifstream.h D) iostream.h39.要求打开文件d:\file.dat ,可与入数据,正确的语句是) D )A)ifstream in file(“d: \f ile.dat ”,ios::i n);B)ifstream in file(“ d: file.dat,IOS::I n);C)ofstream in file(“ d: file.dat ”,ios::out);D)fstream in file(“ d: file.dat ”,ios::i n| ios::out);40. 假定已定义浮点型变量data ,以二进制方式把data的值写入输出文件流对象outfile 中去,正确的语句是(C)A)outfile.write((float *) & data, sizeof(float));B) outfile.write((float *) & data, data);C) outfile.write((char *) & data, sizeof(float));D) outfile.write((char *) & data, data);二、简答题:1. 什么是预编译,何时需要预编译:回答:总是使用不经常改动的大型代码体。
c试题5

else printf(“%d\n’’,m--);}
A)4 B)5 C) 6 D)7
19、若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是_______。
A)(exp= =0)B)(exp!=0)
C)(exp==1)D)(exp!=1)
a=d/100%9;
b=(-1)&& (-1);
printf(“%d,%d”,a,b); }
A) 6,1 B) 2,1 C) 6,0 D) 2,0
15、请阅读以下程序:
main( )
{int a=5,b=0,c=0;
if (a=b+c) printf(“* * *\n”);
else printf(“$ $ $\n”); }
…
}
A) void fun(int m, int x[ ]) B) void fun(int s, int h[41])
C) void fun(int p, int *s) D) void fun(int n, int a)
35、下列程序执行后的输出结果是
main()
{ int a[3][3], *p,i;
A) char<int<long int<=float<double
B) char=int<long int<=float<double
C) char<int<long int=float=double
D) char=int=long int<=float<double
6、若有代数式 ,则不正确的C语言表达式是__。
scanf(“%c%c”,&c1,&c2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言测试题,时间90分钟 Post By:2009-12-3 10:22:56一、选择题(1.5*20)(1)下列数据结构中,按先进后出原则组织数据的是A)线性链表 B)栈C)循环链表 D)顺序表(2)下列表达式中,结果为5的是A)6*5%6B)5*-2+15C)5+75%10D)6+-2/3(3)关于C语言的主函数描述正确的是A)C程序可以有多个main函数B)C程序必有一个而且只能有一个main函数C)C程序可以没有main函数D)C程序的执行不一定在main函数开始执行(4)已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为A)1B)2C)3D)4(5)若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是A)9B)8C)3D)2(6)下列关于栈的描述正确的是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素(7)阅读下列程序,则执行结果是#include "stdio.h"main(){int a=0,b=0,c=0,i;for(i=0;i<4;i++)switch(i){case 0:a=i++;case 1:b=i++;case 2:c=i++;case 3:i++;}printf("%d,%d,%d,%d\n",a,b,c,i);}A)0,1,3,4B)1,2,3,4C)0,1,2,5D)0,2,3,4(8)以下描述错误的是A)C程序中,函数可以直接或间接的调用自己B)函数调用时,函数名必须与所调用的函数名字完全一致C)函数说明语句中的类型必须与函数返回值的类型一致D)实参数可以与形参个数不一致(9)阅读下面程序,则执行后的结果为#include "stdio.h"int fun1(){int k=20;return k;}int fun2(){int a=15;return a;}fun3(int a,int b){int k;k=(a-b)*(a+b);printf("%d\n",k);}main(){fun3(fun1(),fun2());}B)184C)175D)编译不通过(10)以下对一维数组c进行正确的定义初始化的语句是A)int c[10]=0;B)int c[10]={0}*10;C)int c[1]={0,0,0,0,0,0,0};D)int c[10]={0};(11)阅读下列程序,则执行后输出的结果是#include "stdio.h"int k=1;fun(int k){k++;k=k*6;}main(){fun(k);printf("%d\n",k);}A)1B)2C)6D)12(12)现有如下程序段#include "stdio.h"void fun(int *a, int *b, int *c){*c=*a+*b;}main(){int a[2]={12,23},c;fun(a,a+1,&c);printf("%d\n",c);则程序的输出结果为A)23B)12C)0D)35(13)若有以下语句,则正确的描述是char a[]="toyou";char b[]={′t′,′o′,′y′,′o′,′u′};A)a数组和b数组的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)a数组等价于b数组(14)已知:char a[15],b[15]={"I love china"};则在程序中能将字符串I love china赋给数组a 的正确语句是A)a="I love china";B)strcpy(b,a);C)a=b;D)strcpy(a,b);(15)阅读下面程序,则执行后的结果为#include "stdio.h"main(){char *str="abcdefghijklmnopq";while(*str++!=′e′);printf("%c\n",*str);}A)fB)aC)eD)q(16)现有如下程序段#include "stdio.h"int fun(int k,int *m);{if(k%3)*m=k*k;else*m=k/3;}main(){int (*p)(int,int *), m;p=fun;(*p)(78,&m);printf("%d\n",m);}则程序段的输出结果为A)24B)25C)26D)27(17)阅读下列程序,则执行后的输出结果为#include "stdio.h"fun(int x){if(x/2>0)fun(x/2);printf("%d",x%2);}main(){fun(20);putchar(’\n′);}A)11100B)10100C)10101D)10110(18)阅读如下程序段,则执行后程序的输出结果是#include <stdio.h>main(){struct a{int x;int y;}num[2]={{20,5},{6,7}};printf("%d\n",num[0].x / num[0].y * num[1].y); }A)0B)28C)20D)5(19)阅读下列程序段#include "stdio.h"typedef struct aa{int a;struct aa *next;} M;void set(M *k, int i, int *b){int j, d=0;for(j=1; j<i; j++){k[j-1].next = &k[j];k[j-1].a = b[d++];}k[j].a = b[d];}main(){M k[5],*p;int d[5]={23,34,45,56,67};set(k,5,d);p=k+1;printf("%d\n",table);}则下面的表达式在table处,能使程序执行后,打印输出数据45的是A)p->next->aB)++p->aC)(*p).a++D)p++->a(20)阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)#include "stdio.h"void main(){FILE *fp;int a[10], *p=a;fp=fopen("a123.txt","w");while( strlen(gets(p))>0 ){fputs(a,fp);fputs("\n",fp);}fclose(fp);}A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中C)从键盘输入若干行字符,第一行写入文本文件a123.txt中D)从键盘输入若干行字符,依次写入文本文件a123.txt中二、填空题(2×12分)(1)阅读下面程序,则在执行时候的输出为 _____________#include "stdio.h"main(){int x=1, y=2, z=0;if(x=2)z=x,x=y,y=z;printf("%d,%d\n",x,y);}(2)语句printf("%d\n",′H′-′0′+64);的执行结果为___________(3)阅读下面程序,则程序的执行结果为____________#include "stdio.h"fun(int x){x=50;}main(){int a=10;fun(a);printf("%d\n",a);}(4)以下程序的输出结果是____________int fun(int x, int y, int *p, int *q){*p=x*y;*q=x/y;}main(){int a,b,c,d;a=4;b=3;fun(a,b,&c,&d);printf("%d,%d\n",c,d);}(5)下面程序是求出数组arr的两条对角线上元素之和,请填空#include "stdio.h"main(){int arr[3][3]={2,3,4,8,3,2,7,9,8}, a=0, b=0, i, j;for(i=0;i<3;i++)for(j=0;j<3;j++)if( ___________________ )a=a+arr[i][j];for(i=0;i<3;i++)for( ___________________ ; j>=0; j--)if( ___________________ )b=b+ arr[i][j];printf("%d,%d\n",a,b);}(6)下面程序的功能是:对字符串从小到大进行排序并输出,请填空#include "string.h"#include "stdio.h"sort(char *a[],int n){int i, j;char *p;for(j=1;j<=n-1;j++)for(i=0; ___________________; i++)if( ___________________ > 0){p=a[i];a[i]=a[i+1];a[i+1]=p;}}main(){int i;char *book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};sort( ___________________ );for(i=0;i<6;i++)printf("%s\n",book[i]);}(7)下面的函数是完成1~n的累加,完成函数a(int k){if(k<=0)printf("error\n");if(k==1)___________________ ;else___________________ ;}三、请填写BOOL , float, 指针变量与“零值”比较的 if 语句(6分)提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”例如 int 变量 n 与“零值”比较的 if 语句为:if ( n == 0 )if ( n != 0 )以此类推请写出 BOOL flag 与“零值”比较的 if 语句:请写出 char *p 与“零值”比较的 if 语句:四、以下为Windows NT下的32位C++程序,请计算sizeof的值(6分)char str[] = “Hello” ;char *p = str ;int n = 10;请计算sizeof (str ) =sizeof ( p ) =sizeof ( n ) = void Func ( char str[100]){请计算sizeof( str ) =}void *p = malloc( 100 );请计算sizeof ( p ) =五、简答题(9分)1、头文件中的 ifndef/define/endif 干什么用?2、#include <filename.h> 和 #include “filename.h” 有什么区别?3、const 有什么用途?(请至少说明两种)六、有关内存的思考题(6分)void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}请问运行Test函数会有什么样的结果?答:Void GetMemory2(char **p, int num){*p = (char *)malloc(num);}void Test(void){char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello");printf(str);}请问运行Test函数会有什么样的结果?答:上机题:七、编写strcpy函数,并验证;求字符串长度(9分)已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串(1)不调用C++/C的字符串库函数,请编写函数 strcpy(6分)(2)计算strDest字符串的长度(3分)八、实现功能:1、从键盘输入一行字符串,调用函数建立反序的链表,然后输出整个链表(5分)2、求出链表的最大值(5分)已知struct node{char data;struct node *next;} *head;。