C程序设计试题及题解.doc_第1页
C程序设计试题及题解.doc_第2页
C程序设计试题及题解.doc_第3页
C程序设计试题及题解.doc_第4页
C程序设计试题及题解.doc_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

7000000000000000000C程序设计试题及题解目录一 选择题1. C语言概述2. 数据类型,运算符与表达式3. 选择结构程序设计4. 循环控制5. 数组6. 7. 函数8. 预处理命令9. 指针10. 结构体与共用体11. 位运算12. 文件二 改错题1. 统计字符串中大小写字母的个数2. 逆序输出3. 计算大于10的最小n个能被3整除的正整数之和4. 输入两个整数及一个运算符进行运算5. 输出201300之间的所有素数,统计总个数6. 统计输入字符串中大写类英文字母的个数7. 输入M个整数,输出其中所有的偶数8. 输出三角形9. 百元买百鸡10、将08的数字字符变成比它大1的数字字符将9变为011、连接字符串12、取出ASCII码值为偶数且下标为偶数的字符13. 求三角形面积14. 百马百担问题15. 求一堆零件的总数(100至200之间)16. 交换两个变量的值17. 计算1至100之间的奇数之和,偶数之和18. 求满足给定等式的未知数的值三 填空题1. 计算给定的公式2. 计算圆周率3. 从10个数中找出最大值和最小值4. 计算满足一定条件的一位整数的值5. 输入若干个整数,统计其中大于0和小于0的个数6. 歌德巴赫猜想7、牛顿迭代法求方程的根8、大写变小写,小写变大写9、计算平均值10、输入姓名,输出信息11、冒泡排序法12、判断三角形是否为直角三角形13、输入一个整数,输出该数的平方14、选择排序法15、用所给公式计算三角形面积16. 输入一个44阶矩阵,并计算第1列元素之和17. 二分法查找元素18. 判断点是否在已知的圆内19、求函数值20. 计算已知公式的值21. 求数组中的最大元素22. 计算前m个整数的和23. 字符串反向存储24. 将学生信息按其学号的升序排列25. 输入一个3行3列的整型数组,求其最大值和最小值26、计算给定的公式的值27、输出Fibonacci数列的前15项四 编程题1输入数字,求已知公式的值2. 统计输入字符串中空格的个数3. 函数求值4. 求已知函数的值5. 将三个字符串从小到大排序后输出6. 求已知函数f( )的值7. 四则运算8. 判断一个矩阵是否为对称矩阵9. 打印出Fibonacci,数列的前20个数10. 计算fun( )函数值11. 按要求实现函数功能12、函数fun1( )求值13. 输入的一个月工资数额,求应交税款14. 按要求处理一个4阶矩阵15. 求已知f(x)函数的值16. 将以指针数组形式存放的n个字符串升序排序17. 求方程中的较大的根18. 判别两个字符串的大小一、选择题(1)C语言概述1、C程序中main函数的位置(C)A、必须在最开始 B、必须在系统库函数后面C、可以在自定义函数后面 D、必须在最后2、下面关于C语言用户标识符的描述,正确的是(D)A、不能区分大小写 B、用户标识符不能描述常量C、类型名也是用户标识 D、用户标识符可以作为变量名3.关于C语言的叙述中,不正确的是(D)A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面括(A)4.若有说明语句:char C=95;则变量C包含(D)个字符A.1 B.2 C.3 D.语法错误5.结构化程序设计不包A.最优化 B自顶而下,逐步细化 C 模拟化设计 D结构化编码 6.结构化程序设计的三种基本语句是(C)A.函数结购, 分支结构 判结构B.函数结构 嵌套结构 平行结构C.顺序结构 分支结构 循环结构D.分支结构 循环结构 嵌套结构7.关于C语言数据类型的A.枚举类型不是基本类型 B.数组不是构造类型C.变量必须先定义后使用 D.不允许使用空类型8.关于C语言的源程序的叙述中,错误的是(C)A.C语言的源程序由函数构成 B.main函数可以书写在自定义函数之后C.必须包含有输入语句 D.一行可以书写多个语句9.下面叙述中,(A)不是结构化程序设计中的三种基本结构之一 A.数据结构 .B.选择结构 C.循环结构 D.顺序结构10.char 型变量存放的是(A)A.ASC码值 B.字符本身 . C十进制代码值 . D十六进制代码值11.已有如下定义和输入语句int a; char c1,c2;scanf(“%d,%c,%c”, a, c1, c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是( B )A10ABB10,A,BC10A BD10 AB12.以下叙述不正确的是( D )A、C程序的执行总是从main函数开始B、一个C源程序必须包含一个main函数C、C语言程序的基本组成单位是函数D、在编译C程序源程序时,可发现注释中的拼写13.已知如下定义和输入语句:int a, b;scanf (“%d, %d”,a, b);若要求a、b的值分别为10和20,正确的数据输入是(B)A、10 20 B、10,20 C、a=10, b=20 D、10;2014、在C语言源程序中,以下叙述正确的是(C)A、main函数必须位于文件的开头B、每行只能写一条语句C、程序中的每一语句可以写成几行D、每个语句的最后必须有点号15.对于C语言源程序,以下叙述错误的是( C )A. 可以有空语句B. 函数之间是平等的,在一个函数内部不能定义其它函数C. 程序调试时如果没有提示错误,就能得到正确结果D. 注释可以出现在在语句的前面16下面叙述中,(A)不是结构化程序设计三种基本结构的共同特点先判断后执行 单入口,单出口,程序中没有执行不到的语句 无死循环17.若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)A.123412312 B. 12341234123412341231231231212 C.1234+1234+1234 D.1234+123+12(2)数据类型,运算符和表达式1、若定义:int x=2; y=3; float i; 则以下符合C语言语法的表达式是(B)A、x=x* 3=2 B、x=(y= = 1) C、i=float(x) D、i%(-3)2、若有定义:int a=5, b=2, c=1;则表达式a-bj|ij的值为(A)A、1 B、变量i的值 C、0 D、变量j的值39、若有定义:int i ,j;则表达式(i=2, j=5, i+, i+j+)的值是(B)A、7 B、8 C、9 D、1040.若希望当a的值为奇数时,表达式的值为”真”,a的值为偶数时,表达式的值为”假”.则不能满足要求的表达式是( C ) A.a%2=1 B.!(a%2=0) C.!(a%2) D.a%241下面叙述正确的是(A)强制类型转换运算的优先级高于算术运算若a和b是整型变量,(a+b)+是合法的”A”*B是合法的A+B是合法的42以下程序段运行后变量a的值为(D)int x=6,y=5;int a;a=(-x=y+)?x:y+1;43.下面程序段的运行结果是( D )int a =5 b=6;printf (“%d”,a/b);A. 5 B. 6 C. 7 D. 044.以下程序的运行结果是( D )void main()int a=65;char c=A;printf(“%x,%d”,a,c);A.65, B.41, C.65,65 D.41,65(3)选择结构程序设计1.C语言对于计嵌套语句的规定:else总是与(B)配对A.第一个if B.之前最近且尚未配对C.缩进位置相同的if D.之前最近的if2.以下的语句中,无内嵌的if语句是(D)A.if(x=y)x+=y; B.if(xyx!=y)x+=y;C.if(x!=y)scanf(“%d”,x);else scanf (“%d”,y); D.if(xy) x+;y+3、以下程序运行结果是(D)void main( ) int n=5; if ( n+=6 ) printf( “% dn” , n); else printf ( “%dn” , +n );A、4 B、5 C、6 D、74.以下程序段运行后的值为(B)int a=1,2,3,b=4,2,5;int *p,*q;int i,x;p=a;q=b;for(i=0;i3;i+) if(*(p+i)=*(q+i) x=*(p+i)*2;不确定5.若有定义:int a=1,b=2,c=3;则执行以下程序后a,b,c的值分别为( D )if(ab) c=a,a=b,b=c;A.a=1 b=2, c=3 B.a=2 b=3 c=1 C.a=2 b=3 c=3 D.a=1 b=1,c=16.以下程序的运行结果是(C)void main ( ) int n=e;switch (n- -)default: printf (“error”);casea:caseb: printf(“good”); break;casec: printf(“pass”);cased: printf(“warn”);A、error B、good C、error good D、warn(4)循环控制1.对于整型变量x,与while(!x)等价的是(B)A.while(x!=0) B.while(x=0) C.while(x!=1) D.while(x)2.以下程序运行后,循环体运行的次数为( B )int i=10,x;for( ;i10;i+) x=x+i;A10B0C1D无限3.设有整型变量x,下述语句( B )不会出现死循环A、for( ; ; x+=1); B、for(; (x=getchar( )!=n; );C、while (1) x+; D、for(x=10; ; x-);4、在C语言中while循环和dowhile循环的主要区别是( B )A、dowhile 循环体内可以使用break语句, while循环体内不能使用break语句B、dowhile的循环至少无条件执行一次,while的循环体不是C、dowhile 循环体内可以使用continue语句,while循环体内不能使用continue语句D、while的循环体至少无条件执行一次,dowhile的循环体不是5、对于整型变量x和y,语句for (x=0, y=0 ; (y!=123) (x4); x+) y+;中的“y+;”被执行( A )A、4次 B、0次 C、123次 D、3次6以下程序段运行后变量n的值为( D )int i=1,n=1;for( ; i3;i+) continue; n=n+i; 7设有如下程序段:int a33=1,0,2,1,0,2,1,0,1,i,j,s=0; for(i=0;i3;i+) for(j=0;ji;j+) s=s+aij;则执行该程序段后,s的值是( C ) 8. 以下程序运行结果(C)void main() int sum=0,item=0; while(item5 item+; sum+=item;if(sum=6) break;printf(“%dn”,sum) ;A.10 B.15 C.6 D.79.下面程序运行结果是( A )int i=0,a =1,2,3,4,5;doai+=10;while(a+i2);for(i=0;i5;i+)printf(“%d”,ai);A.11 2 3 4 5 B.1 2 3 4 5 C.11 12 13 14 15 D.11 12 3 4 510.若有定义:int i=0,x=0; int a33=1,2,3,4,5,6,7,8,9则以下程序段运行后x的值为( C ) for( ;i3;i+) x+=ai2-i;A.0 B.12 C.15 D.1811.以下程序的运行结果是( B )void main()int sum=0,item=0;while (item5)item+;sum+=item;if(sum=5) break;printf(“%dn”,sum);A. 10 B.15 C.5 D.612.下面程序段的运行结果是( D )int i=O, a=3,4,5,4,3;doai+;while(a+i5);for(i=0;i5;i+)printf(“%d”,ai) ;A. 45654 B.34543 C.45554 D.4554313.下面程序段的运行结果是( C )int i=0,a=7,5,7,3,8,3;doai+=2;while(a+i5);for(i=0;i6;i+)printf(“%d ”,ai);A. 9 7 9 5 10 5 B.9 5 9 3 10 3 C. 9 5 7 3 8 3 D.7 5 7 3 8 3(5)数组1、有如下定义 int a 3=1,2,3,4,5,6,7,8,;则数组a的行数( B )A、 2 B、 3 C、 4 D、无法确定2.以下数组定义中,正确的是( B )A.int a2 3=1,2,3,4,5,6,7; B.int a =1,2,3,4,5,6,7,8,9;C.int a2 =1,2,3,4,5,6; D.int a 4=6;3.若有定义:int a=6,b=2;ch1ar C1=a,C2=b;则表达式a+b%5+C2-C1的值是( C )A .7 B.8 C.9 D表达式错误4.若有定义:char str6=“abcdm”,*ps,*str2=“abcdef”;正确的是( B )A.stycpy(str1,str2); B.表达式strcmp(str1,str2)的值0C.str1=str2; D.表达式strlen(str1)的值为65.以下能对一维数组a进行正确初始化的语句是( D )A.int a5=(0,0,0,0,0,) B.int a5=0 C.int a5=1,2,3,4,5,6,7 D.int a=06.以下( A )是不正确的字符串常量A.abc B.“1212” C.“O” D“ ”7.设有如下定义:char str8=“Fujian”;则分配给数组str的存储空间是(C)字节A.6 B.7 C.8 D.98.下列数组定义中,正确的是( A )A.int a10 B.int n=10 an; C.int N=10;int aN; D.int n; scant(“%d”,n);int an9.若有定义int a23;则对数组元素的非法引用是( D )A.a01/2 B.a11 C.a4-40 D.a0310.若有int a=2 则a=strcmp(“miss”,“miss”)运行后a的值为(B)A.1 B.0 C.-1. D.211.以下程序结束后屏幕输出(B)char str=“abcd”;printf(“%d”,strlen(str);A.4. B.5 C.6 D.712.已知int a10;则对a数组元素引用不正确的是( A )Aa10Ba3+5Ca10-10Da5 13.设有以下变量定义:char str1=”string”,str28,*str3,*str4=”string”;则( A )是正确的Astrcpy(str1,”china”); Bstr2=”china”;Cstrcpy(*str3,”china”);Dstrcpy(str40,”china”);14、以下能对一维数组a进行正确初始化的语句是( D )A、int a5=(0, 0, 0, 0, 0); B、int a s=0;C、int a5=1, 2, 3, 4, 5, 6, 7 ; D、int a = 0;15. 若有定义int a 3 =1,2,3,4,5,6,7,8,9;则表达式sizeof(a)/sizeof(a0)的值为( A )A、3 B、4 C、5 D、916、下列数组定义中,正确的是( A )A. int a5=0; B、int a =0 1 2; C、int a5=0 D、int a 17、以下数组定义中,正确的是( B )A、int a23=1,2,3,4,5,6,7;B、int a =1,2,3,4,5,6, 7,8,9;C、int a2 =1,2,3,4,5,6;D、int a 4=618.若有定义:int a34=1,2,0,1,2,3;则a11的值为( A )A.0. B.1,2 C.1 D.319.若有定义:int a3=0,1,2;则a1的值为( B ) A.0 B. 1 C.2 D.320若有定义:int a5=1,2,3,4,5;则语句a1=a3+a2+2-a3-1;运行后a1的值为( A ) 21.有如下定义:char str6=a,b,0,d,e,f;则语句printf(“%s”,str);的输出结果是( D )A.ab B.abdef C.ab0 D.ab22.定义char a=“abcdef”;char b=“xyz”;以下程序运行后输出( B )strcpy(a,b);printf(“%c”,a2);A. c B. z C.0 D.d23、以下程序段运行后屏幕输出为( A )char str80; strcpy(str, “hello”); printf( “%d” , strlen (str);A、5 B、6 C、7 D、8024以下程序段运行后屏幕输出为( C )char a=”abc0mis”;printf(“%d”,srelen(a); (6)函数1.关于C语言函数的描述中,正确的是( B )A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用得意嵌套 C. 函数的定义和函数的调用都可以嵌套 D. 函数的定义和函数的调用都不可以嵌套2.已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是( B )A.scanf(“%d”,a); B.scanf(“%lf”,a); C.scanf(“%c,a); D.scanf(”%u”,a);3.putchar()函数的功能是向终端输出( B )A.多个字符 B.一个字符 C.一个实型变量值 D.一个整型变量表达式4、已知int a;使用scanf()函数输入一个整数给变量a, 正确的函数调用是( B )A、scanf(“%d”, a); B、scanf(“%d”,a); C、scanf(“A”, a ); D、scanf(“%df”, a );5.C语言的函数体由( B )括起来 A.( ) B. * *6.如下fun函数的类型是( C )fun(float x) double y; int z; y=x*x; z=(int)y; return(z);void B.double C.int D.float7.设有如下函数定义:int fun(char *str) char *p;p=str;if(p!=0) p+;return (p-str);则以下语句执行后的输出结果是( A )printf(“%dn”,fun(“student”);A. 7 B. 8 C. 9 D. 108.以下程序的屏幕输出为(B)#includevoid f(int i)int a=2;a=i+;printf(“%d”,a);main()int a=1 ,c=3;f(c);a=c+;printf(“%d”,a);A. 4,3 B. 3,3 C.4,5 D. 3,59.若有以下函数定义:int fun ()static int k=0;return +k;以下程序段运行后屏幕输出为( D )int i; for (i=1;i=5 i+) fun();printf(“%d”,fun();A. 0 B. 1 C. 5 D. 610.以下程序运行的结果是( )int fun (int array44)int j;for(j=0;j4;j+)printf(“%2d”,array2j);printf(“n”);main()int a44=0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0;fun(a);A.2005 B.1004 C.0120 D.045011.以下程序运行后屏幕输出为( D )#includestdio.hint a=2 ,b=3;int max(int a,int b) int c;c=ab?a:b;return(c);main()int a=4;printf(“%d”,max(d,b);A. 2,3 B. 2 C. 3 D. 412.以下程序运行后屏幕输出为( B )#includeint f(int x,int y) return(x+y);main() int a=2,b=3,c; c=f(a,b); printf(“%d+%d=%dn”,a,b,c);A.0 B.2+3=5 C.2+3=0 D.3+2=513、下面程序的输出结果是( D )#includeint global=100;fun ( )int global=5;return +global;void main( )printf (“% dn”, fun( ) )A、100 B、101 C、5 D、6(7)预处理命令1.若有定义:#define PI 3,则表达式PI*2*2的值为( A )A.12 B.4 C.3 D.不确定2.设有如下定义typedef int *INTEGER;INTEGER P,*q;则( C )是正确的表述A.P是int型变量 B .q是基类型为int的指针变量C.P是基类型为int的指针变量 D.程序中可用INTEGER代替int类型名。3、以下叙述中,正确的是( A )

温馨提示

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

评论

0/150

提交评论