C程序设计参考题型14667_第1页
C程序设计参考题型14667_第2页
C程序设计参考题型14667_第3页
C程序设计参考题型14667_第4页
C程序设计参考题型14667_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计参考题型说明:本套练习题仅反映考试的题型,作为考前复习和参考。这些题目基本涵盖了课程的基本知识和重点内容。要利用好这些题目,关键不能靠死记硬背,而是通过题目掌握其涉及的知识点和程序所涉及的重要算法。一、单选题1. C程序的基本构成单位是【 】A)文件B)命令C)函数D)语句2. 在C语言中,a是【 】A)字符串常量B)字符常量C)变量D)函数3. 在C语言中,“a=b=c=5”属于哪种表达式?【 】A)关系B)赋值C)逻辑D)非法4. 设a、b为整型,则表达式(a=2,b=5,b+,a+b)的值是【 】A)2B)6C)7D)85. 若有以下变量定义:int b=2;float a

2、=5;则表达式“ab”之值为【 】A)2.5B)2C)3D)5/26. 若j=3,则表达式(+j)+(j+)的值为【 】A)6B)7C)8D)107. 以下只能输入单个字符的函数是【 】A)printf( )B)puts( )C)getchar( )D)putchar( )8. 若a的原值为4,则表达式“a*=a-=3”运算后,a的值是【 】A)13B)4C)3D)19. 若a=5、b=3、c=1,则表达式“abc”的值为【 】A)0B)1C)3D)510. 若有代数式:以下错误的C语言表达式是【 】A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*311.

3、 下列能输出字符数组str中字符串的语句是A)printf(%c,str0);B)printf(%s,str);C)printf(%s,str);D)putchar(str);12. 若p=&x,则下列关系表达式之值为1的是【 】A)p=xB)*p=xC)&p=xD)*x=p13. C语言中最基本的数据类型包括【 】A)整型、实型、逻辑型B)整型、实型、字符型C)整型、逻辑型、字符型D)整型、实型、字符串型14. C语言中,要求运算对象必须是整型数据的运算符是【 】A)%B)/C)D)&15. 表示数学关系“xyz”的C语言表达式是【 】A)x=y=zB)x=y | y=zC)x=y&y=zD

4、)xyz16. 以下说法中正确的是【 】A)C程序总是从文件中第一个函数开始执行B)C程序中,只有main( )函数才可以调用其他函数C)C程序总是从main( )函数开始执行D)C程序中的main( )函数必须放在程序的开头17. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为【 】A)2.5B)2.75C)3.5D)018. 设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为【 】A)intB)floatC)doubleD)不确定19. 有输入语句:scanf(%d,%d,&a,&b);为使变

5、量a、b分别为5和3,从键盘输入数据的正确形式为【 】A)5 3B)5,3C)a=5 b=3D)a=5,b=320. 定义如下变量和数组:int j;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是【 】for(j=2; j=0; j-)printf(%2d,xj2-j);A)1 5 9B)1 4 7C)7 5 3D)3 6 921. 执行下面程序后,a的值是【 】#define SQR(x) x*xvoid main( )int a=10,k=2,m=1;a=SQR(k+m);printf(%dn,a);A)10B)5C)2D)122. 以下叙述不正确的是【 】A)

6、在函数内部定义的变量是局部变量B)函数中的形式参数是局部变量C)全局变量的作用范围仅限于其所在的整个文件D)局部变量的作用范围仅限于本函数23. 设a=3,b=4,c=2,d=1,则表达式“ab?a:cd?c:d”的值为【 】A)4B)3C)2D)124. 有以下程序段:x=-1;dox=x*x;while(!x);执行时,循环体执行的次数为【 】A)0B)1C)2D)不确定25. 以下不正确的if语句形式是【 】A)if(xy&x!=y);B)if(x=y) x+=y;C)if(x!=y) scanf(%d,&x) else scanf(%d,&y);D)if(xy) x+;y+;26. 以

7、下程序的输出结果是【 】void main( )int x=2,y=-1,z=2;if(xy)if(y0)z=0;elsez+=1;printf(%dn,z);A)0B)1C)2D)327. 以下能正确计算12310的程序段是【 】A)i=1,s=1;B)s=1;i=1;dowhile(i=10) s=s*i;i+; s=s*(+i);while(i11);C)for(i=1,s=0;i=10;i+)D)for(i=1,s=1;i+) s=s*i;s=s*i;28. 若j为整型变量,则以下循环执行次数是【 】for(j=0;j=0;)printf(%d,j-);A)无限次B)0次C)1次D)2

8、次29. 若有说明:int a10;则对a数组元素的正确引用是【 】A)a3.5B)a(8)C)a6-5D)a1030. C语言规定,变量做实参时,它和对应形参之间的数据传递方式是【 】A)地址传递B)单向值传递C)双向值传递D)由用户指定传递方式31. C中,一个float类型的数据在内存中占用的字节数是【 】A) 1 B) 2 C) 4 D) 832. 设有程序段:int k=5;while (k=0)k-;则下列描述中正确的是【 】A) while循环执行5次B) 循环是无限循环 C) 循环语句一次也不执行D) 循环体语句执行一次33. 下面程序段的运行结果是【 】char c5= a,

9、 b, 0, c, 0 ; printf(“%s”, c);A) ab B) ab C) Abc D) abc34. 以下不正确的字符串赋值语句是【 】A) char *s; s=abcde;B) char s =abcde;C) char s10; s=abcde;D) char *s=abcde;35. 设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是【 】A) k=*p1+*p2;B) p2=k;C) p1=p2;D) k=p2-p1;36. 下面程序的输出结果是【 】void main( ) char s = ABCD; char *p; for (p=

10、s;pbc”属于哪种表达式?【】A) 关系B) 赋值C) 逻辑D) 非法43. 以下不合法的C表达式是【】A) 10 | 8B) 12=9+1C) +5D) x!=y44. 给定以下程序段:int n=10;while (n6)n-;printf(“%3d”,n);以上程序段输出结果是【】A) 10 9 8B) 9 8 7C) 10 9 8 7D) 9 8 7 645. 若i,j已定义为int型,则以下程序段中内循环总的执行次数是【】for (i=5; i0; i-)for (j=1; j6; j+)A) 30B) 24C) 25D) 2046. 若已定义:float *p, m=3.1415

11、9; 则使p指向m正确的赋值语句是【】A) p=m;B) p=&m;C) *p=m;D) *p=&m;47. 若已定义:char s10; 则下面表达式中不能作为s1地址的是【】A) s+B) s+1C) &s0+1D) &s148. 已知:int a=3, b=5, t; 要将a和b中的数值进行交换,错误的程序段是【 】A. a=a+b; b=a-b; a=a-b;B. t=a; a=b; b=t;C. t=a; b=a; a=t;D. t=b; b=a; a=t;49. 关于C程序中的#include ,错误的描述是【 】A. 它是C语言的预编译命令B. 在程序中该行尾部不需要分号C. 用

12、于将math.h包含进来D. math.h是一个函数50. 下列C程序段的输出结果是【 】int a=0;switch(a)case 0: printf(“a=0”);case 1: printf(“a=1”);default: printf(“default”);A. a=0B. a=0defaultC. a=0a=1defaultD. default51. 已知:int a, x, y; 有语法错误的C语句是【 】A. while(x) y+;B. while(x+y=0) a+;C. while(xy);D. while(y=5) +x;52. 对于do while( )语句,错误的说法

13、是【 】A. 用条件控制循环体的重复执行B. 循环体至少要执行一次C. 循环体有可能一次也不执行 D. 循环体中可以包含若干条语句53. 已知:int a, x, y; 有语法错误的C语句是【 】A. while(x) y+;B. while(x+y=0) a+;C. while(xb | c的值为_。4. 整数m既能被3整除又能被4整除的逻辑表达式为_。5. 若有定义:double a105; 则数组a中行下标最大值为_,列下标最大值为_。6. 若有定义:int a 1,4,6,5,8,9; 则 *(a+5) 的值为_。7. 设有如下定义int a56,*p; 取数组元素a42的地址放到p中

14、的语句为_。8. 未加特别说明(说明为静态的)的全局变量是外部的,能被其它文件中的函数使用,而在引用它的文件中,需要用关键字_说明。9. 已知a=10,b=20,则表达式!ab的值为_。10. 写出0x1的C逻辑表达式_。11. 写出判断字符变量c所存字符是否为字母的逻辑表达式 。12. 实现变量a和b交换的语句或语句序列是 。13. 若有定义:int a10,*p=a; 则元素a5的值用p表示的形式是_。14. 若有定义:int *p4; 则标识符p表示_。15. 凡是函数中未指定存储类型的局部变量,其默认的存储类型为_。三、程序填空1. 下面程序的功能是:从键盘输入一个字符,若是大写字母,

15、则转换为小写字母并输出,若为小写字母则直接输出,请在_处填上合适内容,使程序完整。include void main( ) char ch; ch=getchar( ); if (_) ch+=32; printf(“%c”, ch);2. 下面程序的功能是:求1100间的偶数和,请在_处填上合适内容,使程序完整。#include void main( )int num, sum=0; for (num=2; num=100; num=num+2) _; printf(1-100间的偶数和是:%dn, sum);3. 下面程序段是求n!的递归函数,请将函数补充完整。double fac(int

16、 n)double result;if (n= =1)result=1;elseresult=_;_;4. 以下程序的功能是:输入一整数n,判断是否为素数。#include void main( )int i, n;scanf(“%d”,&n);for (i=2; _; i+)if (n%i=0)break;if (_)printf(“%d is a prime number.n”, n);elseprintf(“%d is not a prime number.n”, n);5. 如下程序实现字符串逆序#include #include void main()char *p1, *p2, c

17、, s50;scanf(“%s”, s);p1=s;p2=s+strlen(s)-1;for(; ; p1+, p2-) ;printf(“The new string is %sn”, s);四、阅读程序1. include void main( )char ch;int cnt1=0,cnt2=0;while (ch=getchar( )!=n)if (ch=a&ch=z) cnt1+;else cnt2+;printf(COUNT=%dn,cnt1);若输入“This is a C program.”,运行结果:_2. #include void main( )int i, j, tem

18、p;int a=0,1,2,3,4,5,6,7,8,9;for(i=0, j=9; ij; i+, j-)temp=ai; ai=aj; aj=temp;for(j=0; j10; j+)printf(%2d, aj);运行结果:_3. #include #include void main( )char str1=good,str2=morning;int i, j;for(i=strlen(str1),j=0;str2j!=0; i+, j+)str1i=str2j;str1i=0;printf(string1=%s,str1);运行结果:_4. #include void main( )

19、int i, j, pos;float val, a10;for(i=0; i10 ;i+)scanf(%f, &ai);val=a0;for(j=0; jval)val=aj; pos=j;printf(Max=%f,position:%d, val, pos);本程序的功能是:_5. #include float average(int x, int n)int i;float sum=0;for(i=0;in;i+)sum+=xi;return(sum/n);void main( )int a5=2,4,6,8,10;float rst;rst=average(a,5);printf(r

20、esult=%fn,rst);运行结果:_6. 给定如下程序:#include void main( )char grade;scanf(“%c”, &grade);switch (grade)case A: printf(85100n); break;case B: printf(7084n); break;case C: printf(6069n); break;case D: printf(60n); break;default: printf(errorn);当程序运行时,从键盘输入“b”,输出的结果是:_。7. 给定如下程序:#include void main( ) int a5=

21、2,5,3,7,6, i, j, t; for (i=0; i4; i+) for (j=0; jaj+1) t=aj; aj=aj+1; aj+1=t; for (i=0; i5; i+) printf(“%3d”, ai);该程序的功能是:_。输出的结果为:_。8. 给定如下程序:#include void fun( )auto int b=0;static int c=4;b+;c+;priintf(b=%d c=%dn, b, c);void main( )int i;for (i=0; i3; i+)fun( );运行结果是_。9. 给定如下程序:#include #include

22、void main()char *p1, *p2, c, s50;gets(s);p1=s; p2=s+strlen(s)-1;for(; p1p2; p1+, p2-)c=*p1; *p1=*p2; *p2=c;printf(“The new string is %sn”, s);此程序的功能是:_。10. 给定如下程序:#include void main()int len(char *p);int length;char str80;gets(str);length=len(str);printf(“LEN=%dn”, length);int len(char *p)int n=0;while(*p)n+; p+;return(n);此程序的功能是:_五、程序改错(要求:不得增加或删除语句,在括号中指出错误并在其后横线上更正。)1.下列程序用来求任意两整数的最大公约数,其中两处有误,请指出错误所在并将其更正。#include void main( )int temp, m, n, x;printf(Enter two numbers:n);scanf(%d,%d, &m, &n);if (m1; x-)if (m%x=0&n%x=0) continue;printf(n最大公约数为:%d,x);( ) (

温馨提示

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

最新文档

评论

0/150

提交评论