C程序设计总复习题及答案11121.docx
- 文档编号:29619874
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:17
- 大小:26.74KB
C程序设计总复习题及答案11121.docx
《C程序设计总复习题及答案11121.docx》由会员分享,可在线阅读,更多相关《C程序设计总复习题及答案11121.docx(17页珍藏版)》请在冰豆网上搜索。
C程序设计总复习题及答案11121
C语言程序设计总复习题
一、选择题
1以下选项中正确的整型常量是A)12.B)-20C)1,000D)4.56答案:
B
2以下选项中正确的实型常量是A)0B)3.1415C)0.329×102D)871答案:
B
3C语言中运算对象必需是整型的运算符是A)%B)/C)!
D)*答案:
A
4可在C程序中用作用户标识符的一组标识符是A)voiddefineWORDB)as_b3_123IfC)For-abccaseD)2cDOSIG答案:
B
5MicrosoftC++中int类型变量所占字节数是A)1B)2C)3D)4答案:
D
2.12不合法的八进制数是A)0B)028C)077D)01答案:
B
6若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a=b=c=100;B)d++;C)c+b;D)d=(c=22)-(b++);答案:
C
7以下程序的输出结果是A)0B)1C)3D)不确定的值main(){intx=10,y=3;printf("%d\n",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;答案:
C
9若有以下程序段,c3中的值是A)0B)1/2C)0.5D)1
intc1=1,c2=2,c3;c3=c1/c2;
答案:
A
10下列运算符中优先级最高的运算符是A)!
B)%C)=D)&&答案:
A
11为表示关系x≥y≥z,应使用的C语言表达式是A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)答案:
A
12以下程序段的输出结果是A)15B)14C)不确定D)0
main()
{inti,sum=0;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);}
答案:
A
13C语言中,字符(char)型数据在微机内存中的存储形式是A)反码B)补码C)EBCDIC码D)ASCII码答案:
D
14判断char型变量c是否为大写字母的最简单且正确的表达式是A)‘A’<=c<=’Z’B)(c>=’A’)&(c<=’'Z’)C)(‘A’<=c)AND(‘Z’>=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;j<5;j++){…}
①20②24③30④25
17设x为整型变量,不能正确表达数学关系:
3 ) ①x=4||x=5||x=6②3 (x<=3)&&! (x>=7) 18正确的标识符是(①) ①x_2②x·1③x=2④? x 19以下叙述不正确的是D。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 20以下正确的函数定义形式是(②) ①doublefun(intx;inty)②doublefun(intx,inty) ③doublefun(intx,y)④doublefun(x,inty) 21若x,i,j和k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 22在C语言中,char型数据在内存中的存储形式是 D 。 A)补码 B)反码 C)原码 D)ASCII码 23若有说明: intx,y=5,*p=&y,则与*&x=*p;等价的语句是(①) ①x=y②y=*p③x=&y④y=&x 24已知学生记录描述为 structstudent {intno;struct{intyear;intmonth;intday;}birth;}s; 设变量S中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是(①) 1s·birth·year=1984;②birth·year=1984; s·birth·month=11;birth·month=11; s·birth·day=11;birth·day=11; ③s·year=1984;④year=1984; s·month=11;month=11; s·day=11;day=11; 25根据题目中给出的数据输入和输出形式,程序中输入输出语句的正确内容是B。 main() {intx;floaty; printf(“enterx,y: ”) 输入语句 输出语句 } 输入形式enterx,y: 2,3.4 输出形式x+y=5.40 A)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④0L 27设x为5,执行下列语句后,y的值不为2的是(③) ①y=x/2②y=6-(--x)③y=x%2④y=x>3? 2: 2 28.设有程序段 intk=10; while(k=0)k=k-1; 则下面描述中正确的是C。 A)while循环执行10次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次 29.C语言中while和do-while循环的主要区别是A。 A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内 D)do-while的循环体不能是复合语句 30若有说明: inta[10];则对a数组元素的正确引用是D。 A)a[10]B)a[3.5]C)a(5)D)a[10-10] 31以下不能对二维数组a进行正确初始化的语句是A。 A)inta[2][3]=0 B)inta[2][3]={{1,2},{0}} C)inta[2][3]={{1,2,3},{4,5,6}}; D)inta[][3]={1,2,3,4,5,6}; 32下面函数调用语句含有实参的个数为(③) func((exp1,exp2),(exp3,exp4,exp5)); ①1②4③2④5 33设x为5,执行下列语句后,y的值不为2的是___C________ A)y=x/2B)y=6-(--x)C)y=x%2D)y=x>3? 2: 2 34C语言允许函数不返回值,此时该函数的类型是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(“inputa: ”); scanf(“%d”,*p); ······ } A)*p表示的是指针变量P的地址 B)*p表示的是变量a的值,而不是变量a的地址 C)*P表示的指针变量p的值 D)*p只能用来说明p是一个指针变量 36变量的指针,其含义是指该变量的B。 A)值B)地址C)名D)一个标志 37若有以下定义,则对a数组元素地址的正确引用是D。 inta[5],*p=a; A)p+5B)*a+1C)&a+1D)&a[0] 38字符串“ABC”在内存占用的字节数是(④) ①3②8③6④4 39若有以下定义: charx,inty,floatt,doublev,则表达式x*y+t—v值的类型为(②) ①char②double③int④float 40若有以下的定义,则值为4的表达式是(②) inta[]={1,2,3,4,5,6},*p=a; ①p+=2,*(p++)②p+=3,*p++③p+=4,*p++④p+=3,*++p 二、填空题: 1在Microsoftc++环境中运行一个C程序时,所运行的程序的后缀是______。 答案: .exe 2C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。 答案: .c.obj.exe 3结构化程序由_____、_____、_____三种基本结构组成。 答案: 顺序、选择、循环 4若k为int整型变量且赋值11。 请写出运算k++后表达式的值A)_____和变量的值B)_____。 答案: 11、12 5函数体由符号____开始,用符号____结束。 函数体的前面是____部分,其后是____部分。 答案: {、}、定义、执行 6在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。 答案: int、float、double 7把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。 答案: floata1=1.0,a2=1.0; 8表达式3.5+1/2的计算结果是____。 答案: 3.5 9表达式s=10应当读做“____”。 答案: 将10赋给变量s 10计算机中内存储器的最小存储单位称____,其中能容纳的数是____。 答案: 位、0或1 11在C语言中整数可用____进制数、____进制数和____进制数三种数制表示。 答案: 十、八、十六 12复合语句在语法上被认为是____。 空语句的形式是____。 答案: 一条语句、;13C语句的最后用____结束。 答案: ; 14以下程序段的输出结果是____。 15C语言中用____表示逻辑值“真”,用____表示逻辑值“假”。 答案: 非0、0 16将下列数学式改写成C语言的关系表达式或逻辑表达式A)____B)____。 A)a=b或a A)a==b||a 17请写出以下程序的输出结果____。 main() {inta=100; if(a>100)printf("%d\n",a>100); elseprintf("%d\n",a<=100); } 答案: 1 18请写出与以下表达式等价的表达式A)____B)____。 A)! (x>0)B)! 0答案: A)x<=0B)1 19当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为____、____、____。 if(a>c)b=a;a=c;c=b; 答案: 3、2、2 20以下程序段的输出结果是____。 intk,n,m;n=10;m=1;k=1;while(k<=n)m*=2;printf("%d\n",m); 答案: 死循环 21一个C源程序至少包含一个_main_函数。 C程序是由_函数_构成。 22在一个C源程序中,注释部分两侧的分界符分别为_/*__和_*/_。 23请写出数学式“ ”的C语言表达式a/b/c。 24*后跟指针变量名,表示该指针变量_指向的变量__。 25函数中的形参和调用时的实参都是数组名时,传递方式为_地址_传递方式。 26设inta[20],*p=a;则对a[5]的引用可以是p[5]。 27C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线_。 28请写出数学式 的C语言表达式(a+b)/(c+d)。 29设有char*a=”ABCD”,则printf(“%s”,a)的输出是ABCD; 30若已知a=10,b=20,则表达式! a 31设a=2,c=‘a’,f=3.0,下列表达式的值为_1__ f==3.0? a<=c: 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() {inta1,a2; inti=5,j=7,k=0; a1=k&&j; a2=a1||j;printf(“a1=%d\na2=%d\n”,a1,a2);} 结果: a1=0 a2=1 2、main() {inti,j,a[5]; for(i=0;i<5;i++) a[i]=i+1; for(j=4;j>=0;j--) printf(“%3d”,a[j]); } 结果: 54321 3、main() {inti=2,x=5,j=7; fun(j,6); printf(“i=%d;j=%d;x=%d\n”,i,j,x); } fun(inti,intj) {intx=7; printf(“i=%d;j=%d;x=%d\n”,i,j,x); } 结果: i=7;j=6;x=7 i=2;j=7;x=5 4.main() {inta=1,b=2,c; c=max(a,b); printf(“maxis%d\n”,c); } max(intx,inty) { intz;z=(x>y)? x: y; return(z); } 结果: maxis2 5、main() {intt,a=2,b=4; printf(“a=%d,b=%d\n”,a,b); t=a,a=b,b=t; printf(“a=%d,b=%d\n”,a,b); } 结果: a=2,b=4 a=4,b=2 6. #include voidmain() {voidprint_star(); voidprint_message(); print_star(); print_message(); print_star(); } voidprint_star() {printf(″******************\n″);} voidprint_message() {printf(″Howdoyoudo! \n″);} 结果: ****************** Howdoyoudo! ****************** 四、程序填空 1、以下程序实现: 输入三个整数,按从大到小的顺序进行输出。 请在括号内填入正确内容 main() {intx,y,z,c; scanf(“%d%d%d”,&x,&y,&z); if(_x if(x if(y printf(“%d,%d,%d”,x,y,z); } 2、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。 main() {inta[2][3]={{1,2,3},{4,5,6}}; intb[3][2],i,j; printf(“arraya: \n”); for(j=0;j<=1;j++) {for(i=0;_i<=2_;i++) {printf(“%5d“,a[j][i]); __b[i][j]=a[j][i]_;} printf(“\n”); } printf(“arrayb: \n”); for(i=0;_i<=2_;i++) {for(j=0;j<=1;j++) printf(“%5d”,b[i][j]); printf(“\n”); } } 3、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母,其它字符不变,请在括号内填入正确内容。 main() {charch;scanf(“%c“,&ch); ifif (ch>=’a’&&ch<=’z’) ch=ch-32 ; else ( ch>=’A’&&ch<=’Z’ ) ch=ch+32; printf(“%c”,ch); } 4、以下程序实现输出x,y,z三个数中的最大数,请在括号内填入正确内容 main() {intx=4,y=6,z=7; int_u,v_; if(_x>y)u=x; elseu=y; if(__u>z_)v=u; elsev=2; printf(“v=%d”,v); } 5下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空: #indude "stdio.h" main() {int m=0,n=0; char c; 1 while((【c=getchar()】)! ='\n') { if(c>='A' && C<='Z') m++ ; if(c>='a' && c<='z') n++; } printf("%d\n", m n: m); } 五、程序设计 1、编一程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。 main() {inti,j; floatg,sum,ave; for(i=1;i<=6;i++) {sum=0; for(j=1;j<=5;j++) {scanf(“%d”,&g);sum+=g;} ave=sum/5; printf(“no=%dave=%5.2f\n”,i,ave); } } 2、编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。 main() {intx,i,m1=0,m2=0,m3=0; for(i=1;i<11;i++) {scanf(“%d”,&x); if(x>0)m1++; elseif(x==0)m2++; elsem3++; } printf(“numberof>0%d\n”,m1); printf(“numberof=0%d\n”,m2); printf(“numberof<0%d\n”,m3); } 3、编一个程序,输入三个单精度数,输出其中最小数。 main() {floatx,y,z; scanf(“%f,%f,%f”,,&x,&y,&z); if(x elsemin=y; printf(“min=%f\n”,min); } 4.输入4个整数,找出其中最大的数。 用一个函数来实现。 #include voidmain() {intmax_4(inta,intb,intc,intd); inta,b,c,d,max; printf(“4intergernumbers: "); scanf("%d%d%d%d",&a,&b,&c,&d); max=max_4(a,b,c,d); printf("max=%d\n",max); } intmax_4(inta,intb,intc,intd) {intmax(inta,intb); intm; m=max(a,b); m=max(m,c); m=max(m,d); return(m); } intmax(intx,inty) {if(x>y) returnx; else returny; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习题 答案 11121