




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计基础复习题答案一、 填空题1、C语言所提供的实型变量分为两种类型,它们是 float 和double 。2、一个 C源程序中至少应包含一个主函数或 main函数 。3.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式 ch=,a,+,8' -' 3'的值为 102。4 .在标准C语言中,输入操作是由库函数scanf()完成的,输出操作是由库函数 printf()完成的。5 .对以下说明:int c10 = 116,125, 218, 312,100,40,13, 67,186;c4的值为 J00 。6 .在C语言中,引用数组元素时,引用数组
2、元素时,其数组下标的数组类型允许 是整型常量或整型表达式。7 .设y为int型变量,请写出描述“ y是偶数”的表达式 (y%2)=0。8 .设 int i=0,j=1,k=2,a=3,b=4;执行表达式(a=i<j)&&(b=j>k)的值为 0。9 .与表达式a+=b等价的另一书写形式是a=a+b 。10 .有以下定义和语句int a32=1,2,3,4,5,6,*p3;p0=a1;则*(p0+1)所代表的数组元素是 a11。11 .代表一个反斜杠字符”的转义字符是R 。12 .变量的指针就是变量的地址,存放变量地址的变量就是指针变量,它用来指向另一个变量。13 .
3、 +i和i+的不同之处在于i+是先使用i的值后,再执行i=i+1 ;而+i是先执行i=i+1 后,再使用i的值 。14 .设 x、y 和 z 是 int 型变量,且 x=3,y=4,z=5,则表达式!(x<y) && !z|1) 值为 0。15 .已知函数 int f(int k) return (k<0)1:f(k-2)+2); 则f(3)的值是 5。16 . C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。17 .计算表达式:x=(i=4, j=10, k=24) 后,x的值为 24。18 .若a和b均是int型变量,且a和
4、b的初值均为5,则计算表达式a+=b+后,a的值为10, b的值为 6。19 .设 int a10=0,1,2,3,4,5,6,7,8,9, *p=a;则表达式 *(p+8)的俏是 9。20 .若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为double 。21 .*(p+)和*(+p)作用不同,它们的意义分别是*(p+)先取*p的值,后使p力口 1, *(+p)先使p力口 1,再取*p二、程序理解题请给出运行以下程序的输出结果:1.#include <>void main() int u=24,v=16,w;while
5、(v)w=u % v; u=v ; v=w;printf("%dn",u);输出结果为:82.void main() char s"Yesn/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);输出结果:/NoYes3.main() int p7=11,13,14,15,16,17,18;int i=0,j=0;while(i<7 && pi%2=1) j+=pi+;printf("%dn",j);输出结果:24_。4、下列程序的运行结果是_total=144void main() in
6、t arr_sum(int arr口,int n);int a34=1,3,5,7,9,11,13,15,17,19,21,23;int *p,total;p=a0;total= arr_sum (p,12);printf( “total=%d n” ,total);int arr_sum(int arr,int n) int i,sum=0;for(i=0;i<n;i+)sum=sum+arri;return(sum);5. 给出以下程序的运行结果:void main() int a,b,c;a=25;b=025;c=0x25;printf("%d, %d, %dn"
7、;,a,b,c);运行结果: 25, 21, 376. 给出有下面一段程序的运行结果。void main() int p7=11,13,14,15,16,17,18;int i=0, ,j=0;while(i<7 && pi%2=1) j+=pi+; printf("%dn",j);运行结果: 247. 给出有下面一段程序的运行结果。#include <>int fac(int n)static int f=1;f=f*n;return(f);void main()int i;for(i=1;i<=5;i+)printf("
8、%d!=%dn",i,fac(i);答案:1! =12 !=23 !=64 !=245 !=1208.给出有下面一段程序的运行结果。main() int a44=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18;int i=0,j=0,s=0;while(i+<4)if(i=2|i=4) continue;j=0;do s+= aj; j+; while(j<4);printf("%dn",s);运行结果:92三、程序填空题1 .以下程序可判断输入的一个整数是否能被5或13整除,若能整除,输出“ yes”并换行,否则输出“
9、no”并换行。请填空。#include <>void main() int k;printf( "Enter a int number: " );scanf( "d ,&k);if(k%5=0|k%13=0)printf(“yes n” );elseprintf(_ "n");2 .下面程序是将键盘输入的英文字符全改为小写英文字符输出,用换行符结束循环。请填空#include <>void main()char c;while( (c=getchar()!='n' )if( c >='
10、;A'|c<='Z' )c=c+32;printf("%c",c);printf("n");3 .有一个一维数组score,内放10个学生成绩,求平均成绩,请填空。#include<>float averagefloat array10);void main()float score10,aver;int i;printf("input 10 scores:n");for(i=0;i<10;i+)scanf("%f", &scorei );printf(&qu
11、ot;n");aver=average(score);printf("average score is %",aver);float averagefloat array10)int i;float aver,sum=array0;for( i=1;i<10;i+)sum=sum+arrayi;aver=sum/10 ;return averJ-4 .以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。Void main() int i,a20,sum,count;sum=count=0;for(i=0;i<20;i+) sca
12、nf("%d”, &ai);for (i=0;i<20;i+) if(a>0) count+; sum+= ai;printf("sum=%d,count=%dn",sum,count);5 .下面程序可以逐行输出由language数组元素所指向的5个字符用。请填空。 #include<>void main() char * language="BASIC ,“FORTRANN,“PROLOG, “JAVA ,“C+' ; char * q; int k; for (k=0;k<5;k+) q= langua
13、ge+k ; printf("sn” ,*q);6.以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符申,请填 空。#include<> void main() char str81,*sptr;int i; for(i=0;i<80;i+) stri=getchar(); if(stri='n') break; stri= '0 _;sptr=str; while(*sptr) putchar(*sptr + ); 7、程序的功能是用递归方法计算第五位学生的年龄,请填空。递归公式如下:10(n=1)age(n尸<
14、;age(n-1)+2(n>1)程序:int age(int n) int c;if( n=1)c= 10;elsec=_age(n-1)+2_ ;return (c);void main() printf( "age:%dn” , age(5);8)下面程序的功能是在三个字符串中找出最小的,请填空:#include<>#include<>void main() char s20,str330;int i;for (i=0;i<3;i+) gets(stri);strcpy ( s, (strcmp(str0,str1)v0str0:str1) )
15、;if (strcmp(str2,s)<0) strcpy( s,str2);print( "sn” , s );9)以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。请填空#include<>void main() int *a,*b,*c, num,x,y,z;a=&x; b=&y; c=&z;printf(“输入3个整数:”);scanf("d%d% d,a,b,c);printf("d,%d,%dn',*a,*b,*c);num=*a;if (*a>*b) num=*b ;if (num&
16、gt;*c) num=*c ;printf(“输出最小整数:dn",num);10 . C语言源程序文件的后缀是,经编译后生成的文件的后缀是,连接后生成的文件的后缀是.exe o11 .从键盘输入一个大写字母,要求改用小写字母输出。请填空:#include <>void main() char c1,c2;c1= getchar();printf("c, %dn”,c1,c1);c2=c1+32 ;printf("c, %dn”,c2,c2);12 .以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。请 填空:#includ
17、e<>void main() char str81,*sptr;int i;for(i=0;i<80;i+) stri=getchar();if(stri='n') break;stri= '0' _;sptr=str;while(*sptr) putchar(*sptr + ; 13 .输入三角形的三边长,求三角形面积。请填空:void main() float a, b, c, s, area ;scanf( "f, %f, %f ”,&a, &b, &c);s=2*(a+b+c);,a,b,c,s);ar
18、ea = sqrt(s*(s-a)*(s-b)*(s-c) ;printf( "a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn printf( "area=%7.2fn ",area);14 .判断m是否素数。请填空:#include <>#include <>void main() int m, i, k;scanf("%d", &m);k=sqrt(m) ;for(i=2;i<=k;i+)if( m%i=0 ) break;if( i>k ) printf("%d
19、 is a prime numbern",m);else printf("%d is not a prime numbern",m);15 .以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如a'变成'f' , ' w变成'b'。请填空:#include <>void main() char c;c=getchar();if (c>=,a,&& c<=,u,) c=c+5 ;else if (c>=' v' && c<=z
20、) c =c-21 ;putchar(c);16 .输入三个整数x,y,z ,请把这三个数由小到大输出。请填空: #include ""#include "" main() int x,y,z,t;scanf("%d%d%d",&x,&y,&z); if (x>y) t=x;x=y;y=t; /* 交换 x,y 的值*/ if(x>z) t=z;z=x;x=t; /*交换 x,z 的值*/if(y>z) t=y;y=z;z=t; /*交换 z,y 的值*/printf("small
21、to big: %d %d %dn",x,y,z);17 .求1!+2!+3!+4!+20!的值。请填空:#include <> void main() float s=0,t=1;int n;for(n=1;n<=20;n+) t=t*n ;s=s+t printf("1!+2!+20!=%cn",s);18 .输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。请填空: #include ""#include "" main() char c;int letters=0,space=0,d
22、igit=0,others=0;printf("please input some charactersn");while( (c=getchar() !='n')if( c>='a'&&c<='z'|c>='A'&&c<=Z )letters+;else if(c='') space+;else if(c>='0'&&c<二'9') digit+;else others+;pri
23、ntf("all in all:char=%d space=%d digit=%d others=%dn",letters, space,digit,others);19 .以下程序是通过指针操作,找出三个整数中的最小值并输出。请填空: #include<> void main() int *a,*b,*c, num,x,y,z;a=&x; b=&y; c=&z;printf(“输入3个整数:”);scanf("d%d% d,a,b,c);printf("d,%d,%dn',*a,*b,*c);num=*a;i
24、f (*a>*b) num=*b ;if (num>*c) num=*c ;printf(“输出最小整数:dn",num); 20.下面程序的功能是打印100以内个位数为6且能被3整除的所有数。请填空#include <>void main() int i,j;for(i=0; i<10;i+) j=i*10+6;if( j%3!=0) continue;printf(一“d ”,j);四、编程题1 .给学生成绩,要求输出成绩等级A'B''C''D''E'。90分以上为A',80-8
25、9分为'B 70-79 分为'C 60-69 分为'D 60 分以下为E'。#include <>void main()float score;char grade;printf("请输入学生成绩:");scanf("%f',&score);while(score>100|score<0)printf("n输入有误,请重输!");scanf("%f",&score);switch(int)(score/10)case 10:case 9: gra
26、de='A'break;case 8: grade='B'break;case 7: grade='C'break;case 6: grade='D'break;case 5:case 4:case 3:case 2:case 1:case 0: grade='E'printf("成绩是 相应的等级是 c.n",score,grade);2 输入一数组各元素值,将这个数组中的值按逆序重新存放(如原来顺序为5, 4, 3, 2, 1要求改为 1, 2, 3, 4, 5) 。#include <
27、;># define N 5 void main() int aN,i,temp;printf("Enter array:n");for(i=0;i<N;i+)scanf("%d",&ai);printf("array a:n");for(i=0;i<N;i+)printf("%4d",ai);for(i=0;i<N/2;i+)temp=ai;ai=aN-i-1;aN-i-1=temp;printf("n Now,arraw a:n");for(i=0;i<N;i+)printf("%4d",ai);printf(&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提高肝功能的保健方法
- 白内障手术患者的健康教育
- 高浓度荧光假单胞菌RHBA17对马铃薯植株的生长抑制研究
- 复荣通脉胶囊对瘀血内停型原发性高血压靶器官中心血管保护作用
- 父母教育对孩子的影响
- 高中生英语听觉词汇知识英语语音意识与英语听力理解的关系研究
- 2024年宁德寿宁县招聘教师笔试真题
- 2025年钴基及钴镍基合作协议书
- 2025年电气化铁路架空导线合作协议书
- 医院餐公室半年述职报告
- TSGD7002-2023-压力管道元件型式试验规则
- 赛事运营创新模式
- 新生儿科、儿科《新生儿窒息复苏》理论考试试题
- 信息检索课件 第2章 文献检索方法(1)-2
- 输变电工程施工质量验收统一表式(线路工程)
- 2024年实验小学大队委竞选笔试试题题库
- 智鼎在线测评题库28题
- 网络安全事件应急预案演练方案
- 普通工安全技术操作规程交底注意事项(8篇)
- 广告导视标牌项目重难点施工方案
- 液压站操作说明书
评论
0/150
提交评论