程序设计基础复习题成教091.docx
- 文档编号:29557398
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:17
- 大小:21.14KB
程序设计基础复习题成教091.docx
《程序设计基础复习题成教091.docx》由会员分享,可在线阅读,更多相关《程序设计基础复习题成教091.docx(17页珍藏版)》请在冰豆网上搜索。
程序设计基础复习题成教091
程序设计基础课程复习题
一、填空题
1、C语言所提供的实型变量分为两种类型,它们是float和double。
2、一个C源程序中至少应包含一个主函数。
3、设n=10,i=4,则运算n%=i-1执行后,n的值是1。
4、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
5.对以下说明:
inta[10]={6,7,8,9,10};
a[1]的值为7。
6.在C语言中,表示逻辑“真”值用非0的数字。
7.设y为int型变量,请写出描述“y是奇数”的表达式(y%2)==1。
8.若a=2,b=4,则表达式!
(x=a)||(y=b)&&0的值是0。
9.与表达式a&=b等价的另一书写形式是a=a&b。
10、代表换行的转义字符是'\n'。
二、选择题
1、在TurboC中5种基本数据类型的存储空间长度的排列顺序为(A)。
A)char C)char=int 2、C语言规定: 在一个源程序中,main函数的位置(C)。 A)必须在最开始B)必须在系统调用的库函数的后面 C)可以任意D)必须在最后 3、若x、i、j和k都是int型变量,则计算下面表达式后,x的值为(C)。 X=(i=4,j=16,k=32) A)4B)16C)32D)52 4、设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为(C)。 A)intB)floatC)doubleD)不确定 5、在TurboC中执行下面程序,其结果是(B) #include voidmain() {inta=32767,b; b=a+1; printf("%d",b); } A、32768B、-32768C、0D、32767 6、对for(表达式1;;表达式3)可理解为(B)。 A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3) C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3) 7、在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)。 A、整型常量B、整型表达式 C、整型常量或整型表达式D、任何类型的表达式 8、有下面的程序段,则(D)。 chara[3],b[]=”China”; a=b; printf(“%s”,a); A、运行后将输出ChinaB、运行后将输出Chin C、运行后将ChiD、编译出错 9、若a=1,b=2,c=3,d=4,则表达式a>b? a: c>d? c: d的值是(D)。 A、1B、2C、3D、4 10、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B)。 A)地址传递B)单向传递 C)由实参传递给形参,再由形参传递给实参D)由用户指定传递方式 三、程序理解题 请给出运行以下程序的输出结果: 1. #include voidmain() {intu=24,v=16,w; while(v) {w=u%v;u=v;v=w;} printf("%d\n",u); } 输出结果为: 8 2.给出以下程序的运行结果: #include voidmain() {chara,b,c; a='B';b='O';c='Y'; putchar(a);putchar(b);putchar(c);putchar('\n');} 答: BOY。 3. #include voidmain() {intn; for(n=100;n<=200;n++) {if(n%3==0) continue; printf("%d",n);} } 输出结果: 得到100到200之间不能被3整除的整数。 4.运行以下程序,若输入数据是: 312(回车),则输出结果如何? #include voidmain() { intx,y,z,t; scanf("%d%d%d",&x,&y,&z); if(x>y) {t=x;x=y;y=t;} if(x>z) {t=z;z=x;x=t;} if(y>z) {t=y;y=z;z=t;} printf("%d%d%d\n",x,y,z); } 输出结果: 123。 5. #include voidmain() {intm=5; if(m++<=5)printf(“%d\n”,m--); elseprintf(“%d\n”,m); } 输出结果为: 6 6.给出以下程序的运行结果: #include voidmain() {charc1,c2; c1='a';c2='b'; c1=c1-32; c2=c2-32; printf(“%c%c”,c1,c2); } 输出结果为: AB。 7. #include voidmain() {inti,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n);} } 输出结果: 9,11,9,10。 8. #include voidmain() {inti,sum=0; i=1; while(i<=100) {sum=sum+i; i++; } printf("%d\n",sum); } 输出结果: 5050。 9. #include voidmain() {inti,j,row=0,colum=0,m; inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; m=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>m) {m=a[i][j]; row=i; colum=j; } printf("%d,%d,%d\n",m,row,colum); } 输出结果: 10,2,1。 10.运行以下程序,若输入数据是: 369(回车),则输出结果如何? #include voidmain() { intx,y,z; scanf("%d%d%d",&x,&y,&z); if(x if(y printf("%d\n",z); else printf("%d\n",y); elseif(x printf("%d\n",z); else printf("%d\n",x); }输出结果: 9。 四、程序填空题 1.以下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出“yes”,否则输出“no”。 请填空。 #include voidmain() {intk; printf(“Enteraintnumber: ”); scanf(“%d”,&k); if____(k%3==0||k%7==0)____1________ printf(“yes\n”); else printf(__“no\n”__2______); } 2.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。 请填空。 intn=0,c; c=getchar(); while(c! =’\n’1) {if(c>=’0’&&c<=’9’2)n++; c=getchar(); } 3.有一个一维数组score,内放10个学生成绩,求平均成绩,请填空. #include floataverage(floatarray[10]); voidmain() {floatscore[10],aver; inti; printf("input10scores: \n"); for(i=0;i<10;i++) scanf("%f",&score[i]1); printf("\n"); aver=average(score); printf("averagescoreis%5.2f",aver); } floataverage(floatarray[10]) {inti; floataver,sum=array[0]; for(i=1;i<10;i++2) sum=sum+array[i]; aver=sum/103; returnaver4; } 4.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变。 请填空。 #include voidmain() {charch; scanf(“%c”,&ch); if(‘A’<=ch&&ch<=’Z’1)ch=ch+32; elseif(ch>=’a’&&ch<=’z’)ch=ch-322; printf(“%c”,ch); } 5.设a=13.6,b=8表达式a+b%3*(int)(a-b)/4的值为__15.6______。 6.输出单个字符。 voidmain() {charc; c=getchar(); _____________;} 要求从键盘输入一个字符,按回车之后,在屏幕上显示刚才输入的字符。 答案: 填写(printf(“%c”,c)或者putchar(c))。 7.输入两个数,然后按照由大到小的次序输出。 voidmain() {intx,y,z; scanf("%f,%f",&x,&y); if(x {_________________________}//这一步是通过z将x,y的值进行交换 printf("%d,%d",x,y);} 答案: z=x;x=y;y=z; 8.有四个数a,b,c,d,要求按从大到小的顺序输出,请在下面程序填空: #include voidmain() {inta,b,c,d,t; scanf(“%d%d%d%d”,&a,&b,&c,&d); if(a if(c if(a if(b if(b if(c printf(“%d%d%d%d\n”,a,b,c,d); } 9.设有程序片段: switch(grade) { case‘A’: printf(“85-100\n”);break; case‘B’: printf(“70-84\n”);break; case‘C’: printf(“60-69\n”);break; case‘D’: printf(“60\n”);break; default: printf(“error! \n”);break; } 若grade的值为’C’,则输出的结果是60-69。 10.以下程序若输入一个小写字母,输出是什么? 若输入一个大写字母,输出是什么? voidmain() {charch; scanf(“%c”,&ch); if(ch>=’A’&&ch<=’Z’) ch=ch+32; elseif(ch>=’a’&&ch<=’z’) ch=ch-32; printf(“%c”,ch); } 答案: 若输入一个小写字母,输出是相应的大写字母? 若输入一个大写字母,输出是相应的小写字母? 11.以下程序可对输入的一个整数进行判断,若该整数能被4整除,但同时又不能被100整除,则输出“yes”,否则输出“no”。 请填空。 #include voidmain() {intk; printf(“Enteraintnumber: ”); scanf(“%d”,&k); if__k%4==0&&k%100! =0_______1___ printf(“yes\n”); else printf(__“no\n”__2___); } 12.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。 请填空。 intn=0,c; do c=getchar(); if(c>=’0’&&c<=’9’1)n++; while(c! =’\n’2); printf(“d%”,n); 13.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变。 请填空。 #include voidmain() {charch; scanf(“%c”,&ch); if(‘A’<=ch&&ch<=’Z’1)ch=ch+32; elseif(ch>=’a’&&ch<=’z’)ch=ch-322; printf(“%c”,ch); } 14.设x=2.5,a=7,y=4.7表达式x+a%3*(int)(x+y)%2/4的值为___2.5_____。 15.求 #include voidmain() {inti=1,sum=0; while(i<=100) {sum=sum+i; i++; } printf("%d\n",sum); } 16.输入两个数,然后按照由小到大的次序输出。 voidmain() {intx,y,z; scanf("%f,%f",&x,&y); if(x>y1) {_z=x;x=y;y=z;___2_}//这一步是通过z将x,y的值进行交换 printf("%d,%d",x,y);} 17.设有程序片段: switch(grade) { case‘A’: printf(“85-100\n”);break; case‘B’: printf(“70-84\n”);break; case‘C’: printf(“60-69\n”);break; case‘D’: printf(“60\n”);break; default: printf(“error! \n”);break; } 若grade的值为’B’,则输出的结果是70-84。 18.把100到200之间的不能被3整除的数输出。 #include voidmain() {intn; for(n=100;n<=200;n++) {if(n%3==0) continue; printf("%d",n); } } 四.编程 1.给学生成绩,要求输出成绩等级‘A’‘B’‘C’‘D’‘E’。 90分以上为‘A’,80-89分为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘E’。 #include voidmain() { floatscore; chargrade; printf("请输入学生成绩: "); scanf("%f",&score); while(score>100||score<0) { printf("\n输入有误,请重输! "); scanf("%f",&score); } switch((int)(score/10)) { case10: case9: grade='A';break; case8: grade='B';break; case7: grade='C';break; case6: grade='D';break; case5: case4: case3: case2: case1: case0: grade='E'; } printf("成绩是%5.1f,相应的等级是%c.\n",score,grade); } 2.编写程序,用递归方法求n! 。 //用递归方法求n! #include floatfac(intn) { floatf; if(n<0)printf("n<0,非法数据! "); elseif(n==0||n==1)f=1; elsef=fac(n-1)*n; return(f); } voidmain() { intn; floaty; printf("输入一个整数: "); scanf("%d",&n); y=fac(n); if(n>=0) printf("%d! =%15.0f\n",n,y); } 3.求1! +2! +3! +4! +……+20! 。 #include voidmain() {floats=0,t=1; intn; for(n=1;n<=20;n++) {t=t*n; s=s+t; } printf(“%f”,s); } 4.用循环语句编一程序,打印出以下图案。 * *** ***** ******* ********* #include voidmain() {inti,j,k; for(i=0;i<=3;i++) {for(j=0;j<=2-i;j++) printf(""); for(k=0;k<=2*i;k++) printf("*"); printf("\n"); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 复习题 成教 091