C语言程序与设计试卷1及其答案 2011
- 格式:doc
- 大小:208.49 KB
- 文档页数:16
C语言程序设计试题及参考答案精心整理c语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(d)a、一个c源程序可以由一个或多个函数共同组成b、一个c源程序必须涵盖一个main函数c、c程序的基本共同组成单位就是函数d、在c程序中,注释说明只能位于一条语句的后面2、以下四个选项中,就是不合法的用户标识符的选项就是(b)a、abcb、12acc、sund、a3、建有语句inta=4;则继续执行了语句a+=a-=a*a后,变量a的值就是(a)a、-24b、0c、4d、164、以下运算符中优先级最低的就是(b)a、a、inputx、y、z;b、scanf(“%d%d%d”,&x,&y,&z);c、scanf(“%d%d%d”,x,y,z);d、read(“%d%d%d”,&x,&y,&z);9、假定从键盘输入23456,下面程序的输出结果是:(c)voidmain(){intm,n;scanf(“-=”,&m,&n);printf(“m=%dn=%d\\n”,m,n);}a、m=23n=45b、m=234n=56c、m=23n=456d、语句有错误10、若运转时,给变量x输出12,则以下程序的运转结果就是(a)main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\\n”,y);}精心整理a、0b、22c、12d、1011、c语言中while和do-while循环的主要区别(a)a、do-while的循环体至少继续执行一次b、while的循环控制条件比do-while的循环控制条件严格c、do-while允许从外部转到循环体内d、do-while的循环体不能是复合语句12、以下对二维数组的恰当表明的语句就是(c)a、inta[3][]b、floata(3,4)c、doublea[3][4]d、floata(3)(4)13、以下程序的输出结果是(c)main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][2-i]);}a、1,5,9b、1,4,7c、3,5,7d、3,6,914、以下能对一维数组a进行正确初始化的语句是(c)a、inta[10]=(0,0,0,0,0);b、inta[10]={};c、inta[10]={0};d、inta[10]={10*1};15、以下程序执行后的输出结果是:(a)intfun(inta,intb,intc){a=456;b=567;c=678;}voidmain(){intx=10,y=20,z=30;z=fun(x,y,z);printf(“%d,%d,%d\\n”,z,y,x);}a、30,20,10b、10,20,30c、10,30,50d、10,30,4016、以下说法正确的是(a)如果在一个函数中的复合语句中定义了一个变量,则该变量a、只在该复合语句中有效b、在该函数中有效c、在本程序范围内有效d、为非法变量17、以下函数调用语句中含有的实参个数为(b)func((exp1,exp2,exp3),(exp4,exp5));a、1b、2c、4d、518、在c语言程序中,以下观点恰当的就是(b)。
2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
【4.2】输入年份year和月month,求该月有多少天。
判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。
若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。
【4.3】编写一个简单计算器程序,输入格式为:data1op data2。
其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。
【4.4】输入n值,输出如图所示矩形。
【4.5】输入n值,输出如图所示平行四边形。
【4.6】输入n值,输出如图所示高为n的等腰三角形。
【4.7】输入n值,输出如图所示高为n的等腰三角形。
【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。
【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。
【4.10】输入n值,输出如图所示边长为n的空心正六边型。
【4.11】输入n值,输出如图所示图形。
【4.12】输入n值,输出如图所示图形。
【4.13】输入n值,输出如图所示图形。
【4.14】输入n值,输出如图所示图形。
【4.15】输入n值,输出如图所示图形。
【4.16】输入n值,输出如图所示图形。
(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。
【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。
【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。
若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。
2011 年 1 月高等教育自学考试全国统一命题考试C++ 程序设计试题 课程代码: 04737一、单项选择题 (本大题共 20小题,每小题 1分,共 20分) 在每小题列出的四个备选项中只有一个是符合题目要求的, 号内。
错选、多选或未选均无分。
1. 在哪种派生方式中,派生类可以访问基类中的 protected 成员 ( ) A.public 和 privateB.public 和 protectedC.protected 和 privateD. 仅 protected2. 对C++语言和C 语言的兼容性,描述正确的是 ()A.C++兼容C B.C++部分兼容C.C++不兼容 CD.C 兼容 C++ 3. 在C++中使用流进行输入输出,其中用于屏幕输出的对象是A. cerrB.cinC.coutD.cfile4. 对使用关键字new 所开辟的动态存储空间,释放时必须使用 A. free B.create C.deleteD.realse5. 如没有使用 private 关键字定义类的数据成员,则默认为 A.private B.publicC.protectedD.friend6. 使用值传递方式将实参传给形参,下列说法正确的是 ( A.形参是实参的备份 B.实参是形参的备份 C. 形参和实参是同一对象 D. 形参和实参无联系7. 在函数调用时,如某一默认参数要指明一个特定值,则有 ()A. 其之前所有参数都必须赋值B. 其之后所有参数都必须赋值C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值8. 设存在函数 int max(int , int) 返回两参数中较大值,若求 22, 59, 70 三者中最大值, 下列表达式不正确的是 ( )A.int m=max(22 , max(59, 70)) ;C.int m=max(22 , 59, 70);9. 下列哪个类型函数不适合声明为内联函数 A. 函数体语句较多C.函数执行时间较短 10.int Func(int , int) ;不可与下列哪个函数构成重载 A.int Func(int , int , int) ; C.double Func(double , double) ; 11. 对类中声明的变量,下列描述中正确的是 A. 属于全局变量 B. 只属于该类C. 属于该类,某些情况下也可被该类不同实例所共享请将其代码填写在题后的括B.int m=max(max(22 ,59),70) ; D.int m=max(59 , max(22, 70)) ; ( ) B.函数体语句较少 D. 函数执行时间过长( ), int) ; , double) ;B.doub le Func(in tD.任何情况下都可被该类所有实例共享12. 类的私有成员可在何处访问 ( )A. 通过子类的对象访问B. 本类及子类的成员函数中C.通过该类对象访问D.本类的成员函数中13. 如果没有为一个类定义任何构造函数的情况下,下列描述正确的是 ( )A. 编译器总是自动创建一个不带参数的构造函数B. 这个类没有构造函数C. 这个类不需要构造函数D. 该类不能通过编译14. 一个类可包含析构函数的个数是 ( )A.0 个B.1 个C. 至少一个D.0 个或多个15.this 指针存在的目的是 ( ) A.保证基类公有成员在子类中可以被访问B. 保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码C. 保证基类保护成员在子类中可以被访问D.保证基类私有成员在子类中可以被访问16. 下列关于类的权限的描述错误的是 ( )A. 类本身的成员函数只能访问自身的私有成员B. 类的对象只能访问该类的公有成员C. 普通函数不能直接访问类的公有成员,必须通过对象访问 D •—个类可以将另一个类的对象作为成员请在每小题的空格中填上正确答案。
题号一二三四五六总分得分考试形式:■闭卷□开卷■笔试□机试答卷要求:试卷答案需填写至答题卡内一、单项选择题(每小题 2 分,共 30 分)1 2 3 4 5 6 7 8 9 10C D A B B A D A C C11 12 13 14 15C D A C B1、C语言源程序文件是一个后缀为( )的文件。
(第1章)A) .bas B) .java C) .c D) .pas2、下列哪个图形不属于传统流程图的符号( )(第2章)A) B) C) D)3、下列标识符中,不合法的用户标识符为()。
(第3章)A) a+4B) If C) then D) _1234、下面运算符优先级最高的是()。
(第3章)A) * B) !C) -(减号)D) =5、以下哪个是不正确的转义字符()。
(第3章)A) '\\'B) '077'C) '\0'D) '\n'6、若int n,x=1,y=0,则条件表达式n=x<y?x:y的结果为()。
(第4章)A) 0 B) 1 C) 2 D) 表达式错误7、分析以下程序, 下列说法正确的是()。
(第4章)int main(){ int i=10,m=0,n=0,k=0;switch(i/10){ case 0: m++;n++;break;case 10: n++; break;default: k++;n++; }printf("%d %d %d\n",m,n,k); }A) 0 0 0 B) 0 1 0 C) 1 1 0 D) 0 1 18、程序段如下:则以下说法中正确的是()。
(第5章)int k=-10; while(k<0) k=k+1;A) while循环执行10次B) while循环执行11次C) 循环体语句一次也不执行D) 循环是无限循环9、下列程序段执行后k值为()。
《C语言程序设计》期末考试试卷以及答案提示(共五篇)第一篇:《C语言程序设计》期末考试试卷以及答案提示一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是 B。
A、C语言简洁、紧凑B、能够编制出功能复杂的程序(任何程序都可以,不算特点)C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是 DA、ABCB、abcC、a_bcD、ab.c(只能是字母,下划线,数字;另外数字不可开头)3、一个C语言程序是由B。
A、一个主程序和若干子程序组成B、函数组成 C、若干过程组成 D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 B A、有零个或多个输入B、有零个或多个输出(有一个或多个输出)C、有穷性D、可行性5、设变数a是整型,f是实型,i是双精度型,则表达式10+…a‟+i*f值的数据类型为 C A、int B、float C、double D、不确定(低类型要转换为高类型)6、在C语言中,char型数据在内存中的存储形式是 D。
A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是B。
#include main(){ int x;float y;scanf(“%3d%f”,&x,&y);} A、12345 B、123 C、45 D、345(由scanf语句可知取三位数值给X)8、若有以下定义int a,b;float x,则正确的赋值语句是B。
A、a=1,b=2(少了分号)B、b++;C、a=b=5(句末少了分号)D、b=int(x);(右侧要是确切的值)9、以下程序的执行结果是A。
#include { int i=10,j=10;printf(“%d,%dn”,++i,j--);} A、11,10 B、9,10 C、11,9D、10,9(i是先加一再使用,j是先使用再减一)10、巳知字母A的ASCII码是65,以下程序的执行结果是D。
《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。
A) MAIN B) _HJ C)2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是(B)。
A) \r B) \n C)\b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。
A) 1, 1 B) 1, 2 C) 2, 2 D)2, 15、已知ch为字符型变量,下面表达式中正确的是(A)。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是(C)。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是(A)。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是(C)。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是(A)A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A ) A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是(A)A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(B )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是(B)int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
《程序设计基础》考试试卷一班级姓名学号____________一、选择题(20分)1.算法具有五个特性,以下选项中不属于算法特性的是(A)有穷性(B)简洁性(C)可行性(D)确定性2.以下选项中可作为C语言合法常量的是(A)-80. (B)-080 (C) (D)3.以下叙述中正确的是(A)用C语言实现的算法必须要有输入和输出操作(B)用C语言实现的算法可以没有输出但必须要有输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出4.以下不能定义为用户标识符是(A)Main (B) _0 (C) _int (D) sizeof5.以下选项中,不能作为合法常量的是(A) (B) (C)+4 (D)6.数字字符0的ASCII值为48,若有以下程序main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);} 程序运行后的输出结果是(A)3,2 (B)50,2 (C)2,2 (D)2,507.有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是(A) (B) (C) (D)8.有以下语句:int b;char c[10];,则正确的输入语句是A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);(C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);9.有以下程序main(){int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 78910.有以下程序main(){int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运行后的输出结果是A)6,1 B)2,1 C)6,0 D)2,011.有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 312.若整型变量a、b、c、d中的值依次为:1、4、3、2。
一、选择题:(共20题,每题1.5分,共30分)1 A2 A3 A4 B5 B6 A7 B8 C9 C 10 D11 C 12 C 13 B 14 D 15 C16 D 17 D 18 A 19 D 20 A1. C语言属于( A )A.高级语言 B. 低级语言C.中级语言 D. 机器语言2. 下列全部属于合法的用户标识符的是( A )A.A1 P_0 dS B. float 2la _A C. *a hy kk D. _123 temp main3. C语言中运算对象必须是整型的运算符为( A )A.% B. / C.= D. <=4. 设有int i; char c; float f; 以下结果为整数的表达式是( B )A.i+f B. i/c C.c+f D. i+c+f5. 逗号表达式(a=5*3, a+20),a+15的值是( B )A.35 B. 30 C.40 D. 206. 设有语句char a = '\72'; 则变量a( A )A.包含一个字符 B. 包含两个字符C.包含3个字符 D. 说明不合法7. 若有以下定义和语句,则输出结果是( B )char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');A.2,M B. 3,E C.2,E D. 不确定8. 设有如下程序段,则下面说法中正确的是( C )int k=10;while(k=0)k=k-1;A.while循环执行10次 B. 循环是无限循环C.循环体语句一次也不执行 D. 循环体语句执行一次9. 当pi=3.1415926时,printf(" %-7.2f",pi);的输出结果是( C )(注:□代表空格)A.3.14159 B. 3.14 C.3.14□□□ D. □□□3.1410. 下列运算符中,优先级最高的是( D )A.! B. + C.|| D. ( )11. 表达式a==b&&b==c计算的优先级别是( C )A.((a==b)&&b)==c) B. (a==(b&&b))==c C.(a==b)&&(b==c) D. a==((b&&b)==c12. 已知x=45, ch=‟B‟,y=0;则表达式(x>=y && ch<‟b‟ && ! y)的值是( C )A.0 B. 语法错C.1 D. “假”13. 下列关于switch语句和break语句的结论中,正确的是( B )A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句C.在switch语句中必须使用break语句D.break语句不能在switch语句中使用14. 若变量c为char类型,能正确判断出c为小写字母的表达式是( D )A.'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C.('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z')15. 执行语句for ( i=0; i++<3; ); 后,变量i的值为( C )A.2 B. 3 C.4 D. 516. 已知:int a[10]; 则对a数组元素的正确引用是( D )A.a[10] B. a[3.5] C.a(5) D. a[9-9]17. 对字符数组str赋初值,str不能作为字符串使用的一个是( D )A.char str[]="shanghai"; B. char str[]={"shanghai"};C.char str[9]={'s','h','a','n','g','h','a','i'}; D. char str[8]={ 's','h','a','n','g','h','a','i'};18. 以下对C语言函数的有关描述中,正确的是( A )A.在C语言中,调用函数时,根据实参传递给形参值的不同,通常有值传递方式和地址传递方式两种。
C语言程序设计模拟试题1(附答案)《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是()。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是()。
A) MAIN B) _HJ C) 2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是()。
A) \r B) \n C) \b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。
A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 15、已知ch为字符型变量,下面表达式中正确的是()。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是()。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是()。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为()。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是()。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是()A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是()A) 数组的首地址 B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是( )A) char s[5]={"ABCD"}; B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是 ( )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是()int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
《C语言程序设计》2011-2012-2B答案第一篇:《C语言程序设计》2011-2012-2B答案河南理工大学学期《C语言程序设计》笔试试卷(B卷)一、单项选择题(每题1分,共50分),在每小题列出的四个选项中只有一个选项是符合题目要求的,请在答案卡上将正确答案所对应选项的字母涂黑。
1.A2.B3.A4. D5. C6.D7.B8.D9.D10.B11.B12.A13.B14.B15.D16.A17.C18.D19.C20.B21.C22.A23.C24.C25.C26.A27.D28.A29.C30.A31.C32.C33.C34.B35.A36.D37.B38.D39.D40.A41.B42.B43.B44.C45.B46.C47.A48.B49.A50.C二、填空题(每空2分,10个空,共20分)。
51.2652.353.154.‘’55.Pa是指向整型二维数组行的指针变量,每行有10个元素。
56.#define57.递归58.;(分号)59.5.360.12三、程序阅读试题(共10题,每题3分,共30分)61.a10=1,c8=101,dc=b62.852k=4,y=063.m=82,j=764.下面程序的输出结果是____。
ABCDBCDCDD65.YES66.s=-13,count=267.12368.1 2 3 6 7 969.The output is:128765439106782154391070.12《C语言程序设计》试卷第1页(共1页)第二篇:C语言程序设计考试题答案1、已知int i, x[3][4];则不能将x[1][1]的值赋给变量i的语句是______(分数:2 分)A.i=*(*(x+1))B.i=x[1][1]C.i=*(*(x+1))D.i=*(x[1]+1)标准答案是:A。
2、当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是______.(分数:2 分)A.a=c=b;B.(a=c)&&(b=c);C.c=b=a;D.(a=c)||(b=c);标准答案是:B。
一、填空(每空1分,共25分)1.编写C语言源程序并上机运行的一般过程为编辑、编译、链接和执行。
其中,编辑的作用是输入或修改源程序,编译的作用是将源代码转换成目标代码,链接的作用是将此目标代码与库函数及其他模块的目标代码链接起来。
2.C语言的标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。
3.能将字符类型的变量ch的值从小写转换为对应的大写字母的表达式是ch–‘a’+‘A’。
4.语句printf(“\\C++ program\\”);的输出结果为 \C++ program\ 。
5.设 char *s=”\na\tabc”; 则指针变量 s 指向的字符串占 7 字节。
6.设 int a=12; 则a+=a-=a*a的值为 -264 。
7.为了实现下列图示的指针变量指向数据对象的关系,可以使用一条数据定义语句,这条数据定义语句是__int x, *p1=&x, **p2=&p1__________。
8.设有定义“int a[3] [4], *p=a[1];”, 则指针变量p指向的元素是 a[0][0] _ 。
9.若用一维数组名作为函数调用的实参,传递给形参的是第一个数组元素的地址。
10.在C语言中,当一个表达式的值为逻辑“真”时,该表达式的值一定是非0 。
11.执行下列程序后的输出结果是 10 。
#define M (a, b) (a)>(b)?( a):(b)main( ){int i=10, j=15;printf(“%d\n”,10*M(i, j));}12.已知枚举类型colorT定义如下:typedef enum {black=1, white, yellow, blue=5, brown, green} colorT;则white, yellow和green的内部编码分别为 2 、 3 和 7 。
13.内存泄露指的是动态申请的内存没有释放。
14.C语言的程序至少包含一个函数,该函数的名字为 main 。
华中科技大学文华学院2010~2011学年度第二学期《C语言程序设计》参考答案、评分标准专业:全院使用范围:本\专科考试时间:2011年7月2日卷型:A卷考试方式:闭卷课程性质:必修一、选择题(每小题2分,共20分)1~5: C D C B C6~10: A B D A D二、把下列数学式子写成C语言表达式(每小题2分,共10分)1. sqrt(s*(s-a)*(s-b)*(s-c))2. 2*sqrt(x)+(a+b)/(3*sin(x))3. exp(x)-log(x)/log(2)4. 2*3.14*r+3.14*r*r+cos(3.14/180*45)5. fabs(-pow(x,5))三、阅读程序,写出运行后的输出结果(每题4分,共20分)1. 结果:62. 结果:***3. 结果:2,14. 结果:00005. 结果:64四、编程题(每小题10分,共40分)1.#include <stdio.h>void main(){int year;scanf("%d",&year);if(year%400==0||(year%4==0&&year%100!=0))printf("%d is a leap year\n",year);elseprintf("%d is not a leap year\n",year);}2. #include <stdio.h>void main(){int m=0,n=0;char c;while((c=getchar())!='\n'){if(c>'A'&&c<='Z')m++;if(c>='a'&&c<='z')n++;}printf("m=%d,n=%d,max=%d\n",m,n,m<n?n:m); }3.#include <stdio.h>void main(){int a[10]={1,2,3,4,5,6,7,8,9,10};int i,n,m,x;n=0,m=9;scanf("%d",&x);while(n<=m){i=(n+m)/2;if(a[i]==x)break;if(a[i]<x)n=i+1;if(a[i]>x)m=i-1;}if(a[i]!=x)printf("No found");elseprintf("%d,%d\n",i,a[i]);}4.#include <stdio.h>void strcat1(char p[], char q[]){int i=0,j=0;while(p[i]!='\0')i++;while(q[j]!='\0'){p[i]=q[j];i++,j++;}p[i]='\0';}void main(void){char a[20],b[10];printf("请输入两个字符串:\n");gets(a);gets(b);strcat1(a,b);printf("\n连接后的字符串为:%s\n",a);}五、填空(每空2分,共10分。
2011年计算机科学与技术专业C 语言试卷题号 一 二 三 四 总分校核分数阅卷一、基础知识填空题(每空2分,共20分)1. C 语言规定,必须用___ ____标识符作为主函数。
2. C 语言中用来表示整常数的进制有哪三种:__ _、__ _、__ _。
3. break 语句只能用于___ ____语句和___ ____语句。
4. 数组名命名规则和变量名相同,由字母、数字和下划线组成,并且开头只能是______ _________。
5. C 语言中,形参缺省的存储类说明是___ ______。
6. 一个专门用来存放另一个变量地址的变量叫____ ______。
7. 定义FILE *fp,这里fp 是一个___ _____。
二、基础选择题(每题2分,共30分)1. C 语言程序是由___ ______组成。
A.若干个过程B.若干子程序C.一个主程序和若干个子程序D.若干函数2. 完成C 源程序编辑后,到生成执行文件,C 理系统必须执行的步骤依次为___ 。
A.连接、编译B.编译、连接C.连接、运行D.运行 3. 下列符号中不属于C 语言保留字的是__________。
A.volatileB.thenC.staticD.for4. 假设在程序中a 、b 、c 均被定义成int 型,并且已被赋予大于1的值,则下列几种表达中,能正确表示代数式abc1的C 表达式是__________。
A.1/a*b*c B.1/(a*b*c) C.1/a/b/(float)c D.1.0/(a*b*c)5.设有int x=10,y=3;则下列表达式值为1的是__________。
A.!(y= =x/3)B.y!=x%7C.x>0&&y<0D.x!=y||x>=y6.字符型常量在内存中存放的是该字符对应的__________。
A. ASCII码值B. 十进制值C. BCD码值D. 内部码值7.以下叙述不正确的是__________。
c语言程序设计试卷及答案-C语言考试试卷及答案(1)在学习C语言这门课程中,经常需要进行考试来检验学生掌握情况。
下面我们来看一份C语言程序设计试卷及答案,为大家提供参考。
一、选择题(每题1分,共10分)1.下列哪一种不是C语言的数据类型?A. intB. charC. doubleD. longE. java答案:E2.下列哪个不是关系运算符?A. <=B. >=C. !=D. =E. ==答案:D3.下列语句哪个是正确的格式?A. if (x>=y) then z=y-x;B. if x>=y z=y-x;C. if (x>=y) z=y-x;D. if (x>=y) {z=y-x};E. x>=y ? z=y-x : return;答案:C4.下列哪种符号是用于引用结构体变量的成员?A. *B. ->C. /D. .E. ?答案:D5.下列哪种运算顺序最高?A. *B. +C. /D. %E. >答案:A6.下列哪种描述方法不是合法的定义结构的方式?A. struct score {int math; int english; int chinese;};B. struct {int math; int english; int chinese; } score;C. typedef struct {int math; int english; int chinese; } score;D. typedef score {int math; int english; int chinese; };E. struct {int math; int english; int chinese; } stu1,stu2; 答案:D7.下列程序中有错,错误在哪儿?#include<stdio.h>void main(){int a,b;printf("Input a,b:");scanf("%d,%d",&a,b);if(a>b)printf("a>b\n");else if(a==b)printf("a=b\n");elseprintf("a<b\n");}A. 缺少std头文件B. main函数缺少返回值C. scanf语句格式缺少’&’D. if语句括号缺失E. 以上都不是答案:C8.下列哪个不是指针运算符?A. *B. &C. ->D. []E. sizeof答案:E9.下列哪一函数库函数可以将字符串转化为浮点型数值?A. sprintf()B. scanf()C. fgets()D. atof()E. atol() 答案:D10.下列哪一函数库函数可以清空缓冲区?A. scanf()B. printf()C. fgets()D. getc()E. fflush() 答案:E二、填空题(每空0.5分,共10分)1.编程中的最小的逻辑处理单元是______。
C语言课后习题习题答案详解(11级教材)第1章1.1 填空题1.1.1 应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main 。
1.1.2 一个函数由__函数头__和__函数体__两部分组成。
1.1.3 在C语言中,输入操作是由库函数__scanf 完成的,输出操作是由库函数_printf_完成的。
1.1.4 通过文字编辑建立的源程序文件的扩展名是_.c__;编译后生成目标程序文件,扩展名是__.obj__;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。
1.1.5 C语言程序的基本单位或者模块是__函数__。
1.1.6 C语言程序的语句结束符是_;___。
1.1.7 编写一个C程序,上机运行要经过的步骤:______________________________。
1.1.8 在一个C语言源程序中,注释部分两侧的分界符分别为_/*__和__*/__。
1.1.9 C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线。
且第一个字符必须为字母或下划线。
1.1.10 C语言中的标识符可分为关键字、预定义标识符和用户标识符3类。
1.2 选择题1.2.1 一个C程序的执行是从( A )。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束1.2.2 以下叙述不正确的是(C)。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C) 在C程序中,注释说明只能位于一条语句的后面D) C程序的基本组成单位是函数1.2.3 C语言规定:在一个源程序中,main函数的位置( C )。
A)必须在程序的开头B)必须在系统调用的库函数的后面C)可以在程序的任意位置D)必须在程序的最后1.2.4 C编译程序是(A)。
c语言2011考试题及答案一、单项选择题(每题2分,共20分)1. 下列选项中,哪个是C语言中的合法变量名?A. 123abcB. _intC. intD. float答案:B2. C语言中,哪个关键字用于定义一个函数?A. intB. functionC. defD. void答案:A3. 在C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A4. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. case答案:D6. C语言中,用于定义一个数组的语法是?A. int array[10];B. int [10] array;C. int array=10;D. int array;答案:A7. C语言中,哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B8. 在C语言中,哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. ref答案:C9. 下列哪个选项不是C语言中的预处理命令?A. #includeB. #defineC. #ifD. switch答案:D10. C语言中,哪个函数用于输出格式化的字符串?A. printfB. scanfC. fprintfD. sprintf答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:____。
答案:int variable_name;2. C语言中,用于声明一个函数的关键字是:____。
答案:int3. 在C语言中,用于表示逻辑“与”操作的运算符是:____。
答案:&&4. C语言中,用于表示逻辑“或”操作的运算符是:____。
答案:||5. 在C语言中,用于声明一个字符数组的语法是:____。
浙江科技学院考试试卷浙江科技学院2010 - 2011 学年第 2 学期考试试卷 A 卷考试科目 C 语言程序设计 考试方式 闭 完成时限 2小时 拟题人 题库 审核人 批准人 2011年6月25日 建工、生化、艺术、轻工、理学 学院 2010 年级 理工科专业命题: 说明:1. 应将全部答案写在答卷纸对应的题号处;否则作无效处理;2. 编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;3. 考试完成后,必须将试卷与答卷同时交回。
一、判断题(本大题共12小题,每题小1分,共12分)1. 在定义数组时,数组的长度可以用整型常量或者整型变量表示。
2. 执行“int x=3,y=4; float z ;z=x/y;”后,z 的值为0.75。
3. C 语言中,关系表达式的值是1和0,分别表示“真”和“假”。
4. else 语句一定要与if 语句配对使用,程序中else 语句的个数一定小于或者等于if 语句的个数。
5. C 语言是一种结构化程序设计语言,结构化程序由顺序、选择、循环三种基本结构组成。
6. 函数中可以使用多个return 语句,也可以没有return 语句。
如果使用多个return语句可以向主函数返回多个值。
7. 使用”w”方式打开一个已经存在的文本文件,将在该文件原有数据的基础上添加新的数据。
8. 定义语句“char s[]={“Hello ”};”和“char s[]={…H ‟, …e ‟, …l ‟, …l ‟, …o ‟};”定义的两个字符数组是等价的。
专业班级 学号 姓名………………………………………………………………………装订线……………………………………………………………………………………9.调用函数时,若实参是一个数组名,则向函数传送的是数组的首地址。
10.使用do……while 语句实现循环时,不管条件真假,都将首先无条件的执行一次循环。
11.假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。
12.语句“c=*p++”的执行过程是p所指向的存储单元的值赋值给变量c,然后p变量自增。
二、单选题(本大题共20小题,每题1分,共20分)1.一个C程序总是从()开始执行。
A. 书写顺序的第一个函数B. 书写顺序的第一条执行语句C. 主函数main()D. 不确定2.程序设计一般包含以下4个步骤,其中首先应该完成的是()。
A. 设计数据结构和算法B. 建立数学模型C. 编写程序D. 调试运行程序3.以下不能..正确计算代数式2((0.5))3sin值的C语言表达式是()。
A. 1/3*sin(1/2)*sin(1/2)B. sin(0.5)*sin(0.5)/3C. pow(sin(0.5),2)/3D. 1/3.0*pow(sin(1.0/2),2)4.下列语句执行后,变量n的值是()。
for(i=1;i<=3;i++){ n=1;n=n*i;}A. 1B. 3C. 4D. 65.对下列语句的描述正确的是()。
int i=1;do{ i++;}while(i=10);A. 执行后i的值是1B. 执行后i的值是2C. 执行后i的值是10D. 死循环6.能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是()。
A. a>=10 or a<=0B. a>=0|a<=10C. a>=10 &&a<=0D. a>=10||a<=07.设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的值为()。
A. 0B. 1C. 2D. 语法错误8.下列程序段不是..死循环的是()。
A. int i=100;while(1){ i=i%100+1;if(i>100)break;} B. int k=0;do{++k;} while(k>=0);C. for( ; ;);D. int s=36;while(s) ––s;9.已知int x=10, y=20, z=30;,以下语句执行后x、y、z的值是()。
if (x>y) z=x; x=y; y=z;A. x=10, y=20, z=30B. x=20, y=30, z=30C. x=20, y=30, z=10D. x=20, y=30, z=2010.请阅读以下程序:#include <stdio.h>void main(){ float a,b;scanf ("%f",&a);if(a<0.0) b=0.0;else if ((a<5.0) && (a!=2.0)) b=1.0/(a+2.0);else if (a<10.0) b=1.0/a;else b=10.0;printf("%f\n",b);}若运行时输入2.0<回车>,则上面程序的输出结果是()。
A. 0.000000B. 0.500000C. 1.000000D. 0.25000011.有以下程序段:int n=0,p;do{scanf("%d",&p);n++;}while(p!=12345 && n<3);此处do-while循环的结束条件是()。
A. p的值不等于12345并且n的值小于3B. p的值等于12345并且n的值大于等于3C. p的值不等于12345或者n的值小于3D. p的值等于12345或者n的值大于等于312.若有如下定义,则下面在scanf函数调用语句中对结构体成员的引用不正确的....是( )。
struct pupil{char name[20];int age;int sex;}pup[5],*p;A. scanf("%d",p.age);B. scanf("%s",pup[0].name);C. scanf("%d",&pup[0].age);D. scanf("%d",&(pup[1].sex));13.有如下数组定义语句“int a[2][3]={1,2,3,4,5,6};”,则*(a+1)+2的值是()。
A. 2B. 6C. 元素2的地址D. 元素6的地址14.执行以下程序后,输出结果是()。
main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(“%d ”,*p); printf(“%d\n”,*(p+8));}A. 1 0B. 1 7C. 1 8D. 1 915.有如下程序,执行后的输出结果是()。
#define M 3#define N M+1#define NN N*N/2main(){ printf(“%d\n”,NN);}A. 3B. 4C. 6D. 816.设x,y,i,j均为整型变量,且x=10,y=3,则执行i=x––; j= ––y;语句后,i和j的值是()。
A. 10,3B. 9,3C. 9,2D. 10,217.下面程序的输出结果为()。
void main(){ char *p;char s[]= "ABCD";for(p=s;p<s+4;p++) printf("%s\n",p);}A. ABCDBCDCDD B. ABCDC. DCBAD. ABCDABCABA18.表达式“strcmp("Windows98","Windows95")”的值为()。
A. 0B. 大于0C. 小于0D. 无法比较19.返回值为void的函数,其含义是()。
A. 调用函数之后,被调用的函数没有返回值B. 调用函数之后,被调用的函数不返回C. 调用函数之后,被调用的函数返回值为任意类型D. 以上三种说法均不正确20.求0到50的总和,不正确...的程序段是()。
A. int i,sum;sum=0;for(i=0;i<51;i++) sum+=i; B. int i,sum;for(i=0,sum=0;i<51;sum+=i++);C. int i,sum;i=0;sum=0;for(i<51) {sum+=i;i++;} D. int i,sum=0;for(i=0; ;i++){ if(i>50) break;sum+=i;}三、程序填空题(本大题共4小题,每空2分,共24分)1.以下程序的功能是计算:s=1+12+123+1234+12345。
请填空。
#include <stdio.h>void main(){ int t=0,s,i;___(1)___;for( i=1; i<=5; i++) {t=i+__(2)___;s=s+t;}printf("s=%d\n",s);}(1) A. s=0 B. s=1C. int n=0D. int n=1(2) A. n B. n*10C. t*10D. t2.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。
请选择填空。
#include <stdio.h>void main(){ long int num;do {scanf("%ld",&num);if(___(3)___ ) printf("num=%ld\n",num);}while (___(4)___ );}(3) A. num%100/10==3 B. num/100%10==3C. num%10/10==3D. num/10%10==3(4) A. ! num B. num==0C. numD. num==13.函数fun实现把数字字符从源字符串中删除,其余字符保持原样。
void fun( char s[ ] ){ int i=0,j;while ( (5) )if ( (s[i]>=‟0‟ &&s[i]<=‟9‟) )for ( j= i ; s[j]!=‟\0‟; j++ ) (6) ;else i++;}(5) A. s[i]==0 B. s[i]<‟\0‟C. s[i]!=‟\0‟D. s[i]==‟\0‟(6) A. s[j-1]=s[j] B. s[j]=s[j-1]C. s[j+1]=s[j]D. s[j]=s[j+1]4.输出50到70之间的所有素数,其中函数isprime(m)用于判断m是否为素数,若m为素数则返回1,否则返回0。