C习题及答案.doc_第1页
C习题及答案.doc_第2页
C习题及答案.doc_第3页
C习题及答案.doc_第4页
C习题及答案.doc_第5页
已阅读5页,还剩17页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

第一、二章 C语言概述与算法一、选择题(四个选项中只有一个是正确的-下同)1. 一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是 A) 有零个或多个输入 B) 有零个或多个输出 C) 有穷性 D) 可行性2. 以下叙述中正确的是 A) C语言的源程序不必通过编译就可以直接运行B) C语言的每条可执行语句最终都将被转换成二进制的机器指令 C) C语言的源程序经编译形成的二进制代码可以直接运行D) C语言的函数不可以单独进行编译3. 对用C语言编写的代码程序,以下叙述中哪个是正确的 A) 可立即执行 B) 是一个源程序 C) 经过编译即可执行 D) 经过编译解释才能执行4. 结构化程序由三种基本结构组成, 由这三种基本结构组成的算法 A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务 C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务5有一个命名为C001.C的C语言源程序,当正常执行后,在当前目录下不存在的文件是 A)C001.OBJ B)C001.DAT C)C001.EXE D)C001.C二、填空题1结构化程序由 、 、 三种基本结构组成。2模块化程序设计的设计原则是 和 。3组成C程序的基本单位是 ,其组成部分包括 和 。4C程序中的main称 ,它可以出现在程序的 位置。5由“/*”和“*/”括起来的内容称为 ,它的作用是 。6描述算法的常用方法有: 。第三章 数据类型、运算符与表达式一、选择题1与十进制数97不等值的字符常量是 A) a B) 101 C) x61 D) 1412在编写了一个C语言源程序C001.C并正确执行之后,当前目录下哪个文件不存在 A) C001.C B) C001.OBJ C) C001.DAT D) C001.EXE3以下选项中正确的整型常量是A) 5 B)-10 C)1.000 D)4/54以下选项中正确的实型常量是A) 0 B)3. 1415 C)0.03x102 D).325以下选项中不正确的实型常量是A)2.670E-1 B)0.05e+1.5 C)-77.77 D)456e-2 6以下选项中不合法的用户标识符是A)wb-1 B)file C)Main D)PRINTF 7以下选项中不合法的用户标识符是 A)_123 B)printf C)A$ D)Dim8C语言中运算对象必须是整型的运算符是A)% B)/ C)* D)+9可在C程序中用作标识符的一组标识符是A)void B)as_b3 C)For D)2c Define _123 -abc DO WORD If case SiG10若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7; B)a=7+b+c,a+ C)int(12.3%4) D)a=a+7=c+b11以下非法的赋值语句是A) n=(i=2,+i); B)j+; C) +(i+1); D) x=j0;12设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是 A) 6.500000 B) 6 C) 5.500000 D) 6.00000013已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 & y+z/2的值是 A) 6 B) 0 C) 2 D) 114以下叙述中正确的是A)a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0D)已有a=3, b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为315以下叙述中正确的是A)在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B)C程序由主函数组成。C)C程序由函数组成。D)C程序由函数和过程组成。16Turbo C中int类型变量所占字节数是A)1 B)2 C)3 D)417不合法的八进制数是A)0 B)028 C)07700 D)0118不合法的十六进制数是A)oxff B)0Xabc C)0x11 D)0x1919若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a=b=c=100; B)d+; C)c+b; D)d=(c=22)-(b+);20以下选项中不是C语句的是A)int i; i+; printf(“%dn”, i); B);C)a=5,c=10 D) ; 21以下合法的C语言赋值语句是A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)-i;22以下程序的输出结果是 main() int x = 10, y = 3; printf(“%dn” , y = x / y); A)0 B)1 C)3 D)不确定的值23C语言中的简单数据类型有A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型24C语言中,字符(char)型数据在微机内存中的存储形式是A)反码 B)补码 C)EBCDIC码 D)ASCII码25设有语句char a= 172;,则变量aA)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法26C语言中不合法的字符常量是 A)xff B)65 C)& D)02827C语言中不合法的字符串量是A)”121” B)y= C)”nn” D)”ABCDx6d”二、填空题1若k为int型变量且赋值11,请写出运算k+后表达式的值 和变量的值 。2若x为double型变量,请写出运算x = 3.2, +x后表达式的值 和变量的值 。3函数体由符号 开始,用符号 结束。 4函数体的前面是 部分,其后面是 部分。5在C语言程序中,用关键字 定义基本整型变量,用关键字 定义单精度实型变量,用关键字 定义双精度实型变量。6把a1、a2定义成单精度实型变量,并赋初值1的说明语句是 。7C程序中定义的变量,代表内存中的一组 。8表达式3.5 + 1 / 2的计算结果是 。9对以下数学式,写出三个等价的C语言表达式是 、 、 。10表达式s = 10应当读做“ ”。11计算机中内存储器的最小单位称为 ,其中能容纳的数是 个12通常一个字节包含 个二进制位。在一个字节中能存放的最大十进制整数是 ,它的二进制数的形式是 ;最小十进制整数是 ,它的二进制形式是 。13当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是 、最小十进制整数是 ,它们的二进制形式是 。14以下程序的输出结果是 。main() int a=0;a+=(a=8);printf(%dn,a);第四章 顺序结构程序设计一、选择题1若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是A)read(a,b,c) B)scanf(“%d%d%d”,a,b,c);C)scnaf(“%D%D%D”,&a,&b,&C); D)scanf(“%d%d%d”, &a,&b,&c);2若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是 scanf(“%f %f %f”, &a, &b, &c);A)10 B)10.0,22.0,33.0 C)10.0 D)10 22 22 22.0 33.0 33 333已知i、j、k为int型变量,若从键盘输入:1,2,3回车,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是 A)scanf(%2d%2d%2d,&i,&j,&k); B) scanf(%d %d %d,&i,&j,&k);C)scanf(%d,%d,%d,&i,&j,&k);D)scanf(i=%d,j=%d,k=%d,&i,&j,&k);4若有以下程序: main() int k=2, i=2, m; m=(k+=i*=k); printf(%d,%dn,m,i); 执行后的输出结果是 A) 8,6 B) 8,3 C) 6,4 D) 7,45 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是A)a=a+b, b=a-b, a=a-b; B)t=a; a=b; b=t;C)a=t; t=b; b=a; D)t=b; b=a; a=t;6有以下程序 main() int i = 10, j = 1; printf(%d,%dn,i-, +j); 执行后输出结果是 A) 9,2 B) 10,2 C) 9,1 D) 10,17若变量已正确定义,以下程序段的输出结果是 x=5.16894; printf(“%fn”, (int)(x*1000+0.5)/(float)1000);A)输出格式说明与输出项不匹配,输出无定值 B)5.17000C)5.168000 D)5.1690008若有以下程序段,c3中的值是 int c1 = 1, c2 = 2, c3; c3 = c1 / c2; A)0 B)1/2 C)0.5 D)19若有以下程序段,其输出结果是 int a = 0, b = 0, c = 0; c = ( a -= a - 5), (a = b, b+3); printf(“%d,%d,%dn”,a, b, c);A)0,0,-10 B)0,0,5 C)-10,3,-10 D)3,3,-1010当运行以下程序时,在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是 main() int a; float b, c; scanf(“%2d%3f%4f”, &a, &b, &c); printf(“na=%d,b=%f,c=%fn”,a, b, c); A)a=98,b=765,c=4321 B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765.0,c=4321.011以下程序的输出结果是 main() int a = 2, b =5; printf(“a=%d,b=%dn”,a, b); A)a=%2,b=%5 B)a=2,b=5 C)a=%d,b=%d D)a=%d,b=%d12若int类型占两个字节,则以下程序段的输出是 int a=-1; printf(“%d, %un”, a, a);A)-1,-1 B)-1,32767 C)-1,32768 D)-1,6553513以下程序段的输出是 int x = 496; printf(“*%-06d*n”, x);A)*496 * B)* 496* C)*000496* D)输出格式不合法14以下程序段的输出是 float a=3.1415; printf(“|%6.0f|n”, a);A)|3.1415| B)| 3.0| C)| 3| D)| 3.|15以下程序段的输出是 printf(“|%10.5f|n”, 12345.678);A)|2345.67800| B)|12345.6780| C)|12345.67800| D)|12345.678|16若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是A)scanf(%f”,c) B)scanf(%8.4f”, &c); C)scanf(%6.2f”, &c); D)scanf(%8f”, &c);17若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是 scanf(“a=%f,b=%f”,&a, &b);A)3.12 9.0 B)a= 3.12b= 9 C)a=3.12,b=9.0 D)a=3.12 ,b=918以下程序的输出结果是 #include “math.h”main() double a = -3.0, b = 2;printf(“%3.0f %3.0fn”, pow(b,fabs(a), pow(fabs(a), b) ); A)9 8 B)8 9 C)6 6 D)以上三个都不对19以下程序的输出结果是 main() char c1 = A, c2 = Y; printf(“%d,%dn”, c1, c2); A)因输出格式不合法,无正确输出 B)65,90C)A,Y D)65,8920以下程序段的输出结果是 main() char x = A; x = (x=A & x=Z)?(x+32):x; printf(“%cn”, x); A)A B)a C)Z D)z 21 以下程序段的输出结果是 main() char ch1, ch2; ch1 = A + 5 - 3; ch2 = A + 5 - 3; printf(“%d,%cn”, ch1,ch2); A)67, C B)B,C C)C,D D)不确定的值22若变量已正确说明,要求用以下语句给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是 scanf(“%f%c%f%c”, &a, &c1, &b, &c2);A)2.0 % 4.0 # B)2.0%4.0# C)2% 4# D)2 % 4 #23以下程序的输出结果是main() int w = 4, x = 3, y = 2, z = 1; printf(“%dn”, (w x) ? w: z y ? z: x);A)1 B)2 C)3 D)424下列程序段的输出结果是int a=1234;float b=123.456;double c=12345.54321;printf(%2d,%2.1f,%2.1f,a,b,c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5二、填空题1若有以下定义,请写出以下程序段中输出语句执行后的结果。(1) (2) (3) int i = -200, j =2500; printf(“(1) %d %d”, i, j); printf(“(2) i = %d, j = %dn”, i, j);printf(“(3) i = %dn j = %dn”, i, j);2变量i、j、k已定义为int类型并赋初值,用以下语句输入时 scanf(“%d”, &i); scanf(“%d”, &j); scanf(“%d”, &k);当执行第一个输入语句时从键盘输入:12.3 表示Enter键则变量i、j、k的值分别是 。3复合语句在语法上被认为是 。空语句的形式是 。4以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式 、 、 。 int k; flaot a; double x; scanf(“%d%f%lf”, &k, &a, &x); printf(“k = %d, a = %f, x = %fn”, k, a, x);5以下程序段的输出结果是 。 int x = 0177; printf(“x = %3d, x = %6d, x = %6o, x = %6x, x = %6un”, x, x, x, x, x);6以下程序段的输出结果是 。 double a = 513.789215; printf(“a = %8.6f, a = %8.2f, a = %14.8f, a = %14.8lfn”, a, a, a, a);7若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是 。请用代表Enter键。 scanf(“%d%c%d%c%d%c%d%c”, &w, &a, &x,&b, &y, &c, &z, &d);8若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是 。 char c1, c2; float a1, a2; scanf(“%f%f”, &a1, &a2); scanf(“%c%c”, &c1, &c2);9若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出从键盘正确输入数据的形式是 。 char c1, c2, c3; scanf(“%4c”, &c1); scanf(“%4c”, &c2);scanf(“%4c”, &c3);10下列程序的输出结果是16.00,请填空。main() int a=9, b=2;float x= , y=1.1,z;z=a/2+b*x/y+1/2;printf(%5.2fn, z ); 第五章 选择结构程序设计一、选择题1下面的程序片断所表示的数学函数关系是 y = -1; if(x != 0) y = 1; if(x 0) y = 1;else y = 0; -1 (x 0) 1 (x 0) 0 (x 0) 0 (x 0) -1 (x 0) 0 (x 0)2运行以下程序后,输出的结果是main() int k = -3; if(k bc) printf(%dn,d); else if(c-1 = d) = 1) printf(%dn,d+1); else printf(%dn,d+2); 执行后输出结果是 A) 2 B) 3 C) 编译时出错 D) 4 5有以下程序main() int i=1,j=1,k=2; if(j+|k+)&i+)printf(%d,%d,%dn,i,j,k);执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,36有如下程序main() float x=2.0,y;if(x0.0)y=0.0;else if(x10.0)y=1.0/x;else y=1.0;printf(%fn,y);该程序的输出结果是A)0.000000 B)0.250000 C)0.500000 D)1.0000007若执行以下程序时从键盘上输入3和4,则输出结果是main() int a, b, s; scanf(“%d%d”, &a, &b); s = a; if(a b) s = b; s *= s; pritnf(“%dn”, s);A)14 B)16 C)18 D)208假定所有变量均已正确定义,下面语句段执行后的x的值是 a = b = c = 0; x = 35; if(!a) x-; else if(b) ; if(c) x = 3; else x = 4; A)34 B)4 C)35 D) 39判断char型变量c是否为大写字母的C表达式是 A)A=c=A&(c=Z) C) (A=c) D)(c=A)&(c=Z)10下列运算符中优先级最高的运算符是A)! B)% C)-= D)& 11下列运算符中优先级最低的运算符是A)| B)!= C)=y)&(y=z) B)(x=y)AND(y=z)C)(x=y=z) D)(x=y)&(y=z)13设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A)a&b B)a=bC)a|b+c&b-c D)!(ab)&!c|1)14以下程序的运行结果是main() int a = 2, b = -1, c = 2; if(a b) if(b 100) printf(“%dn”, a 100);else printf(“%dn”, a c) b = a; a = c; c = b;4若变量已正确定义,以下语句段的输出结果是 。 x = 0; y = 2; z = 3;switch(x) case 0: switch( y = 2) case 1: printf(“*”); break; case 2: printf(“%”); break; case 1: switch( z ) case 1: printf(“$”); case 2: printf(“*”); break; default : printf(“#”); 5. 以下程序的输出结果是 。main() int x=100, a=10, b=20, ok1=5, ok2=0;if(a50)printf(%d,a);if(a40)printf(%d,a);if(a30)printf(%d,a); 7以下程序的执行结果是 。main() int k=8; switch(k) case 9: k+=1;case 10: k+=1;case 11: k+=1; break;default: k+=1;printf(%dn,k);8阅读下面程序,程序执行后的输出结果是 。#include stdio.hmain() int x,y,z; x = 1; y = 2; z = 3; if(xy)if(xz)printf(%d,x);else printf(%d,y);printf(%dn,z);9C语言中用 表示逻辑真,用 表示逻辑假。10根据C语言运算符的优先顺序和结合性,按从先到后的顺序写出以下表达式中,运算符“+”、“”、“*”、“&”、“!=”、“|”、“!”和“/”的先后顺序: 、 、 、 、 、 、 、 。 (a + b) c * 2 & b != 5 | !(1 / 2)11若表达式(a + b) c * 2 & b != 5 | !(1 / 2)中,a、b、c的定义和赋值为 int a = 3, b = 4, c = 2;则表达式的值为 。12将下列数学式改写成C语言的关系表达式或逻辑表达式是 A) B) 。 A)a = b 或 a 413请写出与以下表达式等价的表达式是 A) B) 。 A)!(x 0) B)!0第六章 循环控制一、选择题1以下不是死循环的语句是A)for( ; ; x += i) ; B)while(1) x +; C)for(i = 10; ; i+) sum += i;D)for(; (c = getchar() != n; ) printf(“%c”, c);2下面程序的运行结果是#include main() int y=10;doy-;while(-y);printf(%dn,y-); A)-1 B)1 C)8 D)03以下程序段的输出结果是int n = 10;while(n 7) n-; pritnf(“%d”, n);A)1098 B)987 C)10987 D)98764以下程序段的输出结果是int x = 3;do printf(“%3d”, x -= 2); while(!(-x);A) 1 B) 3 0 C) 1 -2 D)死循环5以下程序的输出结果是main() int i, sum; for(i = 1; i 0; y -) if(y % 3 = 0) pritnf(“%d”, -y); continue; A)741 B)852 C)963 D)8754217有以下程序 main() int i; for(i=0; i3; i+) switch(i) case 1: printf(%d, i); case 2: printf(%d, i); default : printf(%d, i); 执行后输出结果是 A) 011122 B) 012 C) 012020 D) 1208以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+ ) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%fn,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 A) sum=0.0; B) sum+=score; C) ave=sum/4.0 D) printf(NO%d:%fn,n,ave);9若x是int类型变量,以下程序段的输出结果是 for(x = 3; x 6; x+) printf( (x%2)?(“*%d”):(“#%dn”),x);A)*3 B)#3 C)#3 D)*3#4 #4 *4 *4#5 *5 *5 #510以下程序的输出结果是#include main() int i; for(i = 1; i 5; i+) if(i % 2) putchar(); putchar (#); A) # B) # C) # D) #11以下叙述正确的是A)do-while语句构成的循环不能用其它语句构成的循环来代替。B)do-while语句构成的循环只能用break语句退出。C)用do-while构成循环时,只有在while后的表达式为非零时结束循环D)用do-while构成循环时,只有在while后的表达式为零时结束循环12以下程序的输出结果是A)39 81 B)42 84 C)26 68 D)28 70 main() int x, i; for(i = 1; i = 100; i+) x

温馨提示

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

评论

0/150

提交评论