365文库
登录
注册
2

二级C语言等级考试程序填空题题库

182阅读 | 8收藏 | 11页 | 打印 | 举报 | 认领 | 下载提示 | 分享:
2
二级C语言等级考试程序填空题题库第1页
二级C语言等级考试程序填空题题库第2页
二级C语言等级考试程序填空题题库第3页
二级C语言等级考试程序填空题题库第4页
二级C语言等级考试程序填空题题库第5页
二级C语言等级考试程序填空题题库第6页
二级C语言等级考试程序填空题题库第7页
二级C语言等级考试程序填空题题库第8页
二级C语言等级考试程序填空题题库第9页
二级C语言等级考试程序填空题题库第10页
二级C语言等级考试程序填空题题库第11页
福利来袭,限时免费在线编辑
转Pdf
right
1/11
right
下载我编辑的
下载原始文档
收藏 收藏
搜索
下载二维码
App功能展示
海量免费资源 海量免费资源
文档在线修改 文档在线修改
图片转文字 图片转文字
限时免广告 限时免广告
多端同步存储 多端同步存储
格式轻松转换 格式轻松转换
用户头像
苦撑着 上传于:2024-07-03
程序填空题一 1. 下面C语言程序将两个递增有序的数值a和b合并一个数组c,并保持递增次序,最后输出数组c. #include < stodio.h> #define M6 #define N5 main( ) {int a[M]={1,3,5,7,9,11} b[N]={2,4,6,8,10}   int c[M+N]   int i ,j, k;   i=j=k=0   while( 1 )   if a[i] main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d
",a,b); a= ① ;  b= ② ;  a= ③ ; printf("a=%d,b=%d
",a,b); }  答案: ① a+b ② a-b ③ a-b  或者  ① a^b ② b^a ③ a^b 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include     /*数学函数数包含在头函数math.h 中*/ double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ① ; return( ② ); } 答案:① 1.0/(float)(i*i) ② sqrt(6*s)  /* sqrt()是求平方根函数*/ 【3.3】下面程序的功能是计算1-3+5-7+ …… -99+101的值。 main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { ① ; s=s+t; ② ; } printf("%d
",s); } 答案:① t=t*i ② t=t>0?-1:1 【3.4】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ① ) { if(x>amax) amax=x;  if( ② ) amin=x; scanf("%f",&x); } printf("
amax=%f
amin=%f
",amax,amin); } 答案: ① x>=0 ② x main() { ① ;  int i,j; printf("Input 10 numbers please
"); for(i=0; ② ;i++ )  scanf("%f", &a[i]); printf("
"); for(i=2; ③ ;i++ )  for(j=0; ④ ;j++ ) if( ⑤ )  { x=a[j]; ⑥ ; a[j+1]=x; } printf("The sorted 10 numbers;
"); for(i=0; ⑦ ;i++ )  { if( ⑧ )  printf("
"); printf("%f\t",a[i]); } printf("
"); } 答案:① float a[10],x ② i<=9 ③ i<=8 ④ j<=9-i  ⑤ a[j]>a[j+1] ⑥ a[j]=a[j+1] ⑦ i<=9 ⑧i%5==0 【3.9】下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。 #include "stdio.h" main() { int i,a[20],s,count; s=count=0; for(i=0;i<20;i++ ) scanf("%d", ① ); for(i=0;i<20;i++) { if(a[i]<0) ② ; s+=a[i]; count++; } printf("s=%d\t count=%d
",s,count); } 答案:① &a[i] ② continue 注释:①是基本概念,使用scanf函数输入数组元素的值。当输入的元素值小于0时,应当跳过后面的语句,取下一个数,所以②要填入continue。 【3.10】下面程序的功能是删除字符串s中的空格。 #include  main() { char *s="Beijing ligong daxue"; int i,j; for(i=j=0;s[i]!='\0';i++) if(s[i]!= ' ') ① ; else ② ; s[j]= '\0'; printf("%s",s); } 答案:① s[j++]=s[i] ② s[j]=s[i] 【3.11】下面程序的功能是将字符串s中所有的字符'c'删除。请选择填空。 #include main( ) { char s[80]; int i,j; gets(s); for(i=j=0;s[i]!= '\0';i++ ) if(s[i]!= 'c') ① ; s[j]= '\0'; puts(s); } 答案:① s[j++]=s[i] 【3.12】下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。 #include  char x[]="programming"; char y[]="Fortran"; main() { int i=0; while(x[i]!= '\0' && y[i]!= '\0') if(x[i]==y[i]) printf("%c", ① ); else i++; }  答案:① x[i++] 【3.13】下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中, 字符串a已排好序。 #include  main() { char a[20]="cehiknqtw"; char s[]="fbla"; int i,k,j; for(k=0;s[k]!= '\0';k++ ) { j=0; while(s[k]>=a[j] && a[j]!= '\0' ) j++; for( ① )  ② ; a[j]=s[k]; } puts(a); } 答案:① i=strlen(a);i>=j;i-- ② a[i+1]=a[i] 【3.14】下面的函数index(char s[], char t[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。 index(char s[], char t[]) { int i,j,k; for(i=0;s[i]!= '\0';i++ ) { for(j=i,k=0; ① && s[j]==t[k];j++,k++) ; if( ② )  return (i); } return(-1); } ① t[k]!= '\0' ② t[k]== '\0' 【3.15】下面程序的功能是计算S= k! 。 k=0 long fun(int n) { int i; long s; for(i=1;i ① ;i++)  s*=i; return( ② ); } main() { int k,n; long s; scanf("%d",&n); s= ③ ; for(k=0;k<=n;k++) s+= ④ ; printf("%ld
",s); } 答案:① <=n ② s ③ 0 ④ fun(k) 【3.16】以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。 #include  age( int n ) { int c; if( n==1 ) c=10; else c= ① ; return(c); } main() { int n=5; printf("age:%d
", ② ); } 答案:① 2+age(n-1) ② age(5) 注释:由于程序是递归算法,因此首先要建立问题的递归数学模型。根据原题的描述可以写出如下递归公式:  age(n) = 10 (n=1) age(n) = 2+age(n-1) (n>1) 对照程序和递归公式可以看出:n的含义是第n位学生。很显然,要求第5位学生的年龄,②处应当是调用函数age,实参的值应当是5。在①处应该是函数的递归调用,根据递归公式,应当填写:2+age(n-1)。 【3.17】下面的函数是一个求阶乘的递归调用函数。 facto(int n) { if( n == 1 ) ① ; else return( ② ); } 答案:① return(1) ② n*facto(n-1) 注释:我们熟悉的求n!的算法一般是采用循环语句实现,但在此程序中根本没有循环语句。这时我们应该想到:是采用递归算法实现的。首先写出求n!的递归公式;    n!=1 当n=1时 n!=n*(n-1) 当n>1时 根据此递归定义,可以很容易完成程序。 【3.18】下列函数是求一个字符串str的长度。  int strlen( char *str ) { if( ① ) return (0);   else return ( ② ); } 答案:① *str=='\0' ② 1+strlen(str+1) 注释:求串长算法的关键是确定串结束标记'\0'的位置。根据求串长的方法,可以得到如下递归算法:指针str指向字符串的首字符 如果 当前字符(*str)== 串结束标记'\0' 则 串长=0 否则 串长 = 1+除第一个字符之外的剩余字符串的串长 因此,在①的位置上应当填写"*str=='\0'",以判断当前字符(*str)是否是串结束标记'\0'。在②的位置应当是根据上面的递归算法进行递归调用,因此应当填写"1+strlen(str+1)"。                                            【3.19】函数revstr(s)将字符串s置逆,如输入的实参s为字符串"abcde", 则返回时 s 为字符串"edcba"。递归程序如下: revstr( char *s ) { char *p=s, c; while(*p) p++; ① ; if(s
下载二维码
网站备案:鄂ICP备2021004464号 网络文化经营许可证:鄂网文[2024]95956-12号
© 2009-2023 www.365docx.com All rights reserved 版本号:1.2.1.154
开发者:武汉妙游互动信息技术有限公司 免责声明:本站文档为网友上传,如有侵权,请联系删除
地址:武汉东湖新技术开发区凌家山南路1号武汉光谷企业天地4号楼12层03室(自贸区武汉片区)
服务条款 免责声明 隐私政策 侵权处理
下载二维码
tj