C程序设计总复习题及答案.doc_第1页
C程序设计总复习题及答案.doc_第2页
C程序设计总复习题及答案.doc_第3页
C程序设计总复习题及答案.doc_第4页
C程序设计总复习题及答案.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计总复习题一、 选择题1 以下选项中正确的整型常量是 A)12. B)-20 C)1,000 D)4.56 答案:B2 以下选项中正确的实型常量是 A)0 B)3.1415 C)0.329102 D) 871 答案:B 3 C语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)* 答案:A 4 可在C程序中用作用户标识符的一组标识符是 A)void define WORD B)as_b3 _123 If C)For -abc case D)2c DO SIG 答案:B 5 Microsoft C+中int类型变量所占字节数是 A)1 B)2 C)3 D)4 答案:D 2.12 不合法的八进制数是 A)0 B)028 C)077 D)01 答案:B6 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是 A) a=b=c=100; B) d+; C) c+b; D) d=(c=22)-(b+); 答案:C 7 以下程序的输出结果是 A) 0 B) 1 C) 3 D)不确定的值 main() int x=10,y=3; printf(%dn, y=x/y); 答案:C 8 若变量已正确定义,要将a和b中的数进行交换,下面正确的语句组是 A) a= b;b=a;a=a-b; B)a=t;a=b;b=t; C) t=a; a=b; b=t; D)b=t; b=a; a=t; 答案:C9 若有以下程序段,c3中的值是 A) 0 B) 1/2 C) 0.5 D) 1int c1=1,c2=2,c3; c3=c1/c2;答案:A 10 下列运算符中优先级最高的运算符是 A) ! B) % C) = D) & 答案:A 11 为表示关系xyz,应使用的C语言表达式是 A) (x=y)&(y=z) B) (x=y)AND(y=z) C) (x=y=z) D) (x=y)&(y=z) 答案:A 答案:C 12 以下程序段的输出结果是 A) 15 B) 14 C) 不确定 D) 0main() int i,sum=0; for(i=1; i6; i+) sum+=i; printf(%dn,sum); 答案:A13 C语言中,字符(char)型数据在微机内存中的存储形式是 A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 答案:D 14 判断char型变量c是否为大写字母的最简单且正确的表达式是 A) A=c=A)&(c=Z) C) (A=c) D) (c=A)&(c=Z) 答案:D 15 以下说法中正确的是 A) C语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在main函数中定义 C) C语言程序总是从main函数开始执行 D) C语言程序中的main函数必须放在程序的开始部分 答案:C 16 若i,j已定义为int类型,则以下程序段中循环体的执行次数是()for (i=6;i;i- -) for(j=0;j5; j+)20 24 30 2517设x为整型变量,不能正确表达数学关系:3x7的c语言表达式是()x=4| x=5| x=6 3x3& x7 !(x=7)18正确的标识符是()x_2 x1 x=2 ?x19以下叙述不正确的是 D 。A) 一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) 程序的基本组成单位是函数D) 在程序中,注释说明只能位于一条语句的后面20 以下正确的函数定义形式是( )double fun(int x;int y) double fun(int x,int y)double fun(int x,y) double fun(x,int y)21 若x,i,j和k都是int型变量,则计算下面表达式后,x的值为C。x=(i=4,j=16,k=32)A)16)32)5222 在语言中,char型数据在内存中的存储形式是D。)补码)反码)原码)码23若有说明:int x,y=5,*p=&y,则与*&x=*p;等价的语句是()x=y y=*p x=&y y=&x24 已知学生记录描述为struct student int no;struct int year;int month;int day; birth; s;设变量S中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是() sbirthyear=1984; birthyear=1984; sbirthmonth=11; birthmonth=11; sbirthday=11; birthday=11; syear=1984; year=1984; smonth=11; month=11; sday=11; day=11; 25 根据题目中给出的数据输入和输出形式,程序中输入输出语句的正确内容是 B 。main()int x; float y;printf(“enter x,y:”)输入语句输出语句输入形式 enter x,y:2 ,3.4输出形式 x+y=5.40A) scanf(“%d%f”,&x,&y);printf(“nx+y=%4.2f”,x+y)B) scanf(“%d,%f”,&x,&y);printf(“nx+y=%4.2f”,x+y)C) scanf(“%d,%f”, x, y);printf(“nx+y=%6.1f”,x+y)D) scanf(“%d%3.1f”,&x,&y);printf(“nx+y=%4.2f”,x+y);26 在C语言中,合法的长整型常数是()1297560 0.05678 2.1869e10 0L27设x为5,执行下列语句后,y的值不为2的是()y=x/2 y=6-(- -x) y=x%2 y=x3?2:228设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是 C 。A) while循环执行10次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次29C语言中while和do-while循环的主要区别是 A 。A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句30 若有说明:int a10;则对a数组元素的正确引用是 D 。A) a10 B) a3.5 C) a(5) D) a10-1031 以下不能对二维数组a进行正确初始化的语句是 A 。A) int a23= 0B) int a2 3=1,2,0C) int a23=1,2,3,4,5,6;D) int a 3=1,2,3,4,5,6;32 下面函数调用语句含有实参的个数为()func((exp1,exp2),(exp3,exp4,exp5);1 4 2 533 设x为5,执行下列语句后,y的值不为2的是_C_A) y=x/2 B) y=6-(- -x) C) y=x%2 D) y=x3?2:234 C语言允许函数不返回值,此时该函数的类型是 B 。A) float型B) void型C) long型D) double型27若用数组名作为函数调用的实参,传递给形参的是 A 。A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值D) 数组元素的个数35以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是 B 。main()int *p,*q,a,b; p=&a; printf(“input a:”); scanf(“%d”,*p); )*p表示的是指针变量的地址)*p表示的是变量a的值,而不是变量a的地址)*P表示的指针变量p的值)*p只能用来说明p是一个指针变量36变量的指针,其含义是指该变量的 B 。A)值 B)地址 C)名 D)一个标志37若有以下定义,则对a数组元素地址的正确引用是 D 。int a5,*p=a;A) p+5 B) *a+1 C) &a+1 D) &a038 字符串“ABC”在内存占用的字节数是( )3 8 6 439 若有以下定义:char x,int y,float t, double v,则表达式x*y+tv值的类型为()char double int float40 若有以下的定义,则值为4的表达式是()int a =1,2,3,4,5,6,*p=a;p+=2,*(p+) p+=3,*p+ p+=4,*p+ p+=3,*+p二、 填空题:1 在Microsoft c+环境中运行一个C程序时,所运行的程序的后缀是_。答案:.exe2 C语言源程序文件的后缀是_,经过编译后,生成文件的后缀是_,经过连接后,生成文件的后缀是_。答案:.c .obj .exe 3 结构化程序由_、_、_三种基本结构组成。答案:顺序、选择、循环4 若k为int整型变量且赋值11。请写出运算k+后表达式的值A)_和变量的值B)_。 答案:11、12 5 函数体由符号_开始,用符号_结束。函数体的前面是_部分,其后是_部分。 答案:、定义、执行 6 在C语言程序中,用关键字_定义基本整型量,用关键字_定义单精度实型变量,用关键字_定义双精度实型变量。 答案:int、float、double 7 把a1、a2定义成单精度实型变量,并赋初值1的定义语句是_。 答案:float a1=1.0,a2=1.0; 8 表达式3.5+1/2的计算结果是_。 答案:3.5 9 表达式s=10应当读做“_”。 答案:将10赋给变量s 10 计算机中内存储器的最小存储单位称_,其中能容纳的数是_。 答案:位、0或1 11 在C语言中整数可用_进制数、_进制数和_进制数三种数制表示。 答案:十、八、十六12 复合语句在语法上被认为是_。空语句的形式是_。 答案:一条语句、 ; 13 C语句的最后用_结束。 答案:; 14 以下程序段的输出结果是_。15 C语言中用_表示逻辑值“真”,用_表示逻辑值“假”。 答案:非0、0 16 将下列数学式改写成C语言的关系表达式或逻辑表达式A)_B)_。 A)a=b或a4 答案:A)a=b|a4|x100) printf(%dn,a100); else printf(%dn,a0) B) !0 答案:A) xc) b=a; a=c; c=b;答案:3、2、2 20 以下程序段的输出结果是_。int k,n,m; n=10; m=1; k=1; while(k=n) m*=2; printf(%dn,m);答案:死循环 21一个C源程序至少包含一个_ main _函数。C程序是由_函数_构成。22 在一个C源程序中,注释部分两侧的分界符分别为_/* _和_*/_。23请写出数学式“”的C语言表达式 a/b/c 。24*后跟指针变量名,表示该指针变量_指向的变量_。25函数中的形参和调用时的实参都是数组名时,传递方式为_地址_传递方式。26设int a20,*p=a;则对a5的引用可以是p5。27 C语言中的标识符只能由三种字符组成,它们是字母、 数字和下划线_。28 请写出数学式 的C语言表达式 (a+b)/(c+d) 。29设有 char *a=”ABCD”,则printf(“%s”,a)的输出是 ABCD ; 30若已知a=10,b=20,则表达式!ab的值为_1_。31设a=2,c=a,f=3.0,下列表达式的值为_ 1 _ f= =3.0 ? a=c 32设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_1.0_。33若自定义函数要求不返回一个值,则在该函数说明时加一个类型说明符_void。34在内存中存储“A”要占用_2_个字节,存储A要占用_1个字节。35若x和a均为int型变量,则计算表达式(1)后的x值为_4_,计算表达式(2)后的x值为_12_。(1)x=a=4,6*2(2)x=(a=4,6*2)三、 阅读程序, 写出运行结果1、main( ) int a1,a2;int i=5,j=7,k=0; a1=k&j;a2=a1|j;printf(“a1=%dna2=%dn”,a1,a2); 结果:a1=0a2=12、main() int i,j,a5; for (i=0;i=0; j- -)printf(“%3d”,aj);结果:5 4 3 2 13、main( ) int i=2,x=5,j=7;fun(j,6);printf(“i=%d; j=%d; x=%dn”,i,j,x);fun(int i, int j) int x=7;printf(“i=%d; j=%d; x=%dn”, i,j,x);结果:i=7;j=6;x=7 i=2;j=7;x=54. main( ) int a=1, b=2, c;c=max(a,b);printf(“max is %dn”, c); max(int x, int y) int z; z=(xy)? x : y; return(z); 结果:max is 25、main( ) int t,a=2,b=4; printf(“a=%d,b=%dn”,a,b);t=a,a=b,b=t; printf(“a=%d,b=%dn”,a,b); 结果:a=2,b=4 a=4,b=26.#include void main()void print_star(); void print_message(); print_star(); print_message(); print_star(); void print_star () printf(*n);void print_message() printf( How do you do!n);结果:* How do you do! * 四、 程序填空1、以下程序实现:输入三个整数,按从大到小的顺序进行输出。请在括号内填入正确内容main( ) int x,y,z,c; scanf(“%d %d %d”,&x, &y, &z); if (_xy_) c=x;x=y;y=c; if ( xz ) c=x;x=z;z=c; if ( yz ) c=y; y=z;z=c; printf(“%d,%d,%d”,x,y,z);2、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。main( )int a23=1,2,3,4,5,6; int b32,i,j; printf(“array a:n”); for(j=0;j=1;j+) for (i=0; _i=2_;i+) printf(“%5d“,aji); _bij=aji_; printf(“n”); printf(“array b:n”);for(i=0;_i=2_;i+) for (j=0;j=a& ch=A & chy)u=x; else u=y; if(_uz_)v=u; else v=2; printf(“v=%d”,v);5 下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空: #indudestdio.h main() intm=0,n=0; charc;1 while(【c=getchar()】)!=n) if(c=A&C=a&c=z)n+; printf(%dn,mn?n:m); 五、程序设计1、编一程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。main() int i,j; float g,sum,ave;for (i=1;i=6;i+) sum=0; for(j=1;j=5;j+) scanf(“%d”,&g); sum+=g; ave=sum/5

温馨提示

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

评论

0/150

提交评论