c++程序填空
- 格式:docx
- 大小:24.51 KB
- 文档页数:18
【程序填空】-——-—----——--—————--—-—-——-—-——----—--—-—-——------———-——- 功能:下面的程序是求1!+3!+5!+……+n!的和。
--——------—-—--——-—----—---——----————-—-———-—-—-—-----—*/#include <stdio.h〉main(){long int f,s;int i,j,n;/***********SPACE***********/【?】;scanf("%d”,&n);/***********SPACE***********/for(i=1;i<=n;【?】){f=1;/***********SPACE***********/for(j=1; 【?】;j++)/***********SPACE***********/【?】;s=s+f;}printf(”n=%d,s=%ld\n",n,s);}/*-—--——-——-—-——---—-----—--——--—-—--—----—---—-—-—--——-—【程序填空】----—---—---—--—-—————-—————-——---—--—----————-—--—--——-—功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。
--———-—--——-—--——-——--—--———--—————-——--—--—-———--—--——*/ #include <stdio.h〉#include <conio.h〉main(){int i,n,sum;sum=0;/***********SPACE***********/【?】;/***********SPACE***********/for(i=1; 【?】;i++)/***********SPACE***********/if(【?】)if(i%2==0){sum=sum+i;n++;printf("%6d",i);/***********SPACE***********/if(【?】)printf(”\n");}printf(”\ntotal=%d”,sum);}/*———-—----———----—----—---———————--—-————----——----—---—【程序填空】——---—————-———-—————---—-—----—--——-—--—--——-—--——————-——功能:求100-999之间的水仙花数说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。
计算机二级C语言上机程序填空题计算机二级C语言上机程序填空题考虑到一部分同学的计算机二级C语言程序填空题基础比较薄弱,为此店铺为大家整理了计算机二级C语言上机程序填空题,希望能够帮助到同学们。
一、程序填空题1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。
当调用正确时, 程序输出:x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#includedouble f1(double x){ return x*x; }double f2(double x, double y){ return x*y; }/**********found**********/__1__ fun(int i, double x, double y){ if (i==1)/**********found**********/return __2__(x);else/**********found**********/return __3__(x, y);}main(){ double x1=5, x2=3, r;r = fun(1, x1, x2);r += fun(2, x1, x2);printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r);}2、给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:letter 'a' : 3 timesletter 's' : 3 times请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
全真c语言程序填空题考试题库Company number:【0089WT-8898YT-W8CCB-BUUT-202108】c语言程序填空!!!这就是考试题库!!!共计131道试题一、程序填空(共131题)Turbo C(共131试题)3)./*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:已定义一个含有30个元素的数组s,函数fun1的功能是按顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序每五个元素求一个平均值, 并将该值存放在数组w中。
-------------------------------------------------------*/float s[30],w[6];fun1(float s[]){int k,i;for(k=2,i=0;i<30;i++){/***********SPACE***********/________________ ;k+=2;}}fun2(float s[],float w[]){float sum=;int k,i;for(k=0,i=0;i<30;i++){sum+=s[i];/***********SPACE***********/________________;{w[k]=sum/5;/***********SPACE***********/________________ ; k++;}}}main(){int i;fun1(s);/***********SPACE***********/________________;for(i=0;i<30;i++){if(i%5==0) printf("\n");printf("%",s[i]);}printf("\n");for(i=0;i<6;i++)printf("%",w[i]);}答案:【1】 s[i]=k 或 s[i]=(i+1)*2【2】 if( ( i + 1 )%5 == 0 ) 或if( ( i + 1 )/5*5 ==i+1)【3】 sum=0 或 sum=【4】 fun2(s,w)4)./*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:下面的程序是求1!+3!+5!+……+n!的和。
二、程序填空题(每空2分,共20分)1.下列程序是求100之内的能被7整除的自然数之和。
请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>void main( ){int sum;_(1) _;for(int i=1;__(2) _; i++)if(_(3) _)sum+=i;cout<<sum<<endl;}答案:_sum=0_ i<=100_ i%7==0__2 下面程序的功能是计算x n。
请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>void main( ){int n,x;cin>>x>>n;double y=1;for(int i=1;__(1) _; i++)_(2) _;cout<<y<<endl;}答案:i<n_ y=x*i3 下面程序是输出100内能被3整除且个位数是6的所有整数。
请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>void main(){int i,j;for(i=0; (1) ;i++){j=i*10+6;if( (2) )continue;elsecout<<j<<endl;}}答案:i<10 j%3!=04.下面程序运行后输出的结果为:** * ** * * * ** * * * * * *请在横线处填入适当的语句,将程序补充完整。
#include <iostream.h>#include<iomanip.h>void main(){int i,j,k ;for(i=1 ;i<=4 ;i++){for(j=1;j<20-3*i; (1) ) cout<<”“;for(k=1; (2) ; k++)cout<<setw(3)<<”*”;(3) ;} }答案:j++ k<2*i-1 cout<<endl5.下面程序运行后输出的结果为:1121123211234321请在横线处填入适当的语句,将程序补充完整。
计算机程序设计基础(C语言)程序填空练习题程序填空:阅读程序。
在划线处填写适当的表达式或语句,使程序完整并符合题目要求1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
main( ) 参考答案:{ char ch;ch=getchar();if( ) ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z' printf("It is an English character\n");else if( ) ch>='0'&&ch<='9'printf("It is a digit character\n");else if( ) ch==' 'printf("It is a space character\n");elseprintf("It is other character\n"); }2.10个学生成绩按交换法排序。
main(){ float score[10], temp1;int i, j;printf("Please enter score:\n");for (i=0; i<10; i++)scanf("%f",&score[i]);for (i=0; i<9; i++)for (j=i+1; j<10; j++)if (score[j] > score[i]){ temp1=score[j];score[j]=score[i];score[i]=temp1;}printf("Sorted results:\n");for (i=0; i<10; i++)printf("%4.0f\n", score[i]); }11.排序函数:用交换法按成绩由高到低对学生成绩重新排序void Sort(float score[ ],int n){ int i, j;float temp1;for (i=0; i<n-1; i++){ for (j=i+1; j<n; j++)if ( ) score[j] > score[i]{ temp1 = score[j];; score[j]=score[i];score[i] = temp1;}}}自定义一函数求n!, 编写程序输入n,输出n!.#include<stdio.h>long jc(int n){ int i=1;long p=1;while (i <= n){ p=p*i;i++; }} return p;main(){ int n;printf("Please enter n:");scanf("%d", &n);printf("%d! = %ld\n", n, ); jc(n)}4.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
程序填空一、程序填空共129题(共计1290分)第1题(10.0分)题号:473/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:输出1到100之间每位数的乘积大于每位数的和的数。
例如:数字26,数位上数字的乘积12大于数字之和8。
-------------------------------------------------------*/ #include <stdio.h>main(){int n,k=1,s=0,m;for(n=1;n<=100;n++){k=1;s=0;/***********SPACE***********/【?】 ;/***********SPACE***********/while( 【?】 ){k*=m%10;s+=m%10;/***********SPACE***********/【?】;}if(k>s)printf("%d ",n);}}答案:=======(答案1)=======m=n=======(答案2)=======m>00<m=======(答案3)=======m=m/10=========或=========m/=10第2题(10.0分)题号:447/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:已知一个数列,它的头两项分别是0和1,从第三项开始以后的每项都是其前两项之和。
编程打印此数,直到某项的值超过200为止。
程序填空题1、#include<stdio.h>voidmain(){intn,k=0;scanf("%d",&n);while(_____1_____)//1)n2)n!=0;{k++;_____2_____;n=n/10}printf("%d\n",k);}2、#include<stdio.h>#include<math.h>#definef(x)x*x-5*x+sin(x)voidmain(){intx;floatmax;______1______//max=f(1);for(x=2;x<=10;x++)______2______//if(f(i)>max)max=f(i);printf("%f\n",max);}3、#include<stdio.h>voidmain(){charc;c=getchar();if(______1______)//c>='a'&&c<'v' c=c+5;elseif(c>='v'&&c<='z')______2______//c=c-21;putchar(c);}4、#include<stdio.h>voidDec2Bin(intm){intbin[32],j;for(j=0;m!=0;j++){bin[j]=______1______;//m%2m=m/2;}for(;j!=0;j--)printf("%d",______2______);//bin[j-1] }voidmain(){intn;scanf("%d",&n);Dec2Bin(n);}5、#include<stdio.h>#include<math.h>voidmain(){intn,s=0;scanf("%d",&n);______1______//n=(n>0n:-n);2)n=fabs(n); while(n!=0){______2______//s=s+n%10;n=n/10;}printf("%d\n",s);}6、/#include<stdio.h>voidswap(______1______)//int*pa,int*pb {/*交换两个数的位置*/inttemp;temp=*pa;*pa=*pb;*pb=temp;}voidmain(){inta,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b)swap(&a,&b);if(b>c)swap(&b,&c);if(______2______)//a>bswap(&a,&b);printf("%d,%d,%d",a,b,c);}7、#include<stdio.h>_______1______//longf(intn);voidmain(){printf("%ld\n",f(30));}longf(intn){if(______2______)//n==1||n==2 return1;elsereturnf(n-1)+f(n-2);}8、#include<stdio.h>voidmain(){chars[80];inti,j;gets(s);for(i=j=0;______1______;i++)//s[i]!=’\0’if(s[i]!='c'){s[j]=s[i];______2______//j++;}s[j]='\0';puts(s);}9、#include<stdio.h>structSTUDENT{charname[16];intmath;intenglish;intcomputer;intaverage;};voidGetAverage(structSTUDENT*pst)/*计算平均成绩*/intsum=0;sum=______1______;//sum+pst->math+pst->English+pst->compute rpst->average=sum/3;}voidmain(){inti;structSTUDENTst[4]={{"Jessica",98,95,90},{"Mike",80,80,90}, {"Linda",87,76,70},{"Peter",90,100,99}};for(i=0;i<4;i++){GetAverage(______2______);//&st[i]}printf("Name\tMath\tEnglish\tCompu\tAverage\n");for(i=0;i<4;i++){printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].e nglish,st[i].computer,st[i].average);}10、#include<stdio.h>#include<math.h>longf(longn){longm,y=0;m=fabs(n);while(m!=0){y=y*10+m%10;____1____//m=m/10;}if(n>=0)returny;else_____2_____//return(-y);}voidmain(){printf("%ld\t",f(12345));printf("%ld\n",f(-34567)); }11、#include<stdio.h>floatf(float,float*,int);voidmain(){floatb[5]={1.1,2.2,3.3,4.4,5.5};printf("%f\n",f(1.7,b,5));}floatf(_______1________)//floatx,floata[],intn {floaty=a[0],t=1;inti;for(i=1;i<n;i++){t=t*x;y=y+a[i]*t;}_____2_____//returny}12、#include<stdio.h>#include<string.h>#include<ctype.h>voidf(char*s){inti=0;while(s[i]!='\0'){if(isdigit(s[i]))____1____(s+i,s+i+1);//strcpy ___2___i++;}//else}voidmain(){charstr[80];gets(str);f(str);puts(str);}13、#include<stdio.h>#include<ctype.h>voidmain(){chara[80];intn[3]={0},i;gets(a);________1________//for(i=0;a[i]!=’\0’;i++){if(tolower(a[i])>='a'&&tolower(a[i])<='z')/*统计字母个数*/n[0]++;elseif(________2________)/*统计数字个数*////a[i]>='0'&&a[i]<='9'n[1]++;elsen[2]++;}for(i=0;i<3;i++)printf("%d\n",n[i]);}14、#include<stdio.h>#include<math.h>voidmain(){inti,a,b,c;for(i=100;i<=999;i++){a=i/100;_______1_______//b=i%100/10;c=i%10;if(________2________)//i==a*a*a+b*b*b+c*c*cprintf("%disaArmstrongnumber!\n",i);}}15、#include<stdio.h>voidmain(){inta[10],b[10],i;printf("\nInput10numbers:");for(i=0;i<10;i++)/*数组输入*/scanf("%d",&a[i]);for(i=1;i<10;i++)b[i]=______1______;/*计算b数组中的元素*///a[i]+a[i-1] for(i=1;i<10;i++){printf("%3d",b[i]);if(______2______)printf("\n");/*每行打印3个数据*///i%3==0 }}。
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
C语言程序填空题1.阅读以下程序并填空。
以下程序的功能是:输出三位正整数中能被13整除的数#include <stdio.h>main(){ int n;for( n=100 ; n<=999 ;n++) if(n%13!=0) continue ; else printf("%d\n",n);} 2.阅读以下程序并填空。
以下程序的功能是:输出100以内能被3整除且个位数为6的所有整数 #include <stdio.h>main(){ int i,j;for(i=0; i<=9 ;i++){ j= i*10+6 ;if(j%3!=0) continue;else printf("%d\n",j);} }3.阅读以下程序并填空。
以下的程序功能是:求101至999之间所有能被13整除的整数之和和个数 #include <stdio.h>main(){ int i,cnt;float sum=0;i=101; cnt=0;while( i<=999 ){ if( i%13==0 ){ sum+=i; cnt++; } i++ ; )printf("sum=%f,cnt=%d\n”,sum,cnt);}4.阅读以下程序并填空。
该程序的功能是:用递归的方法求菲波那契数列2,2,4,6,10,16, 26,42,68,110,……的第10项 #include <stdio.h>long fib(int n){ if(n>= 3 )return fib(n-1)+fib(n-2);elsereturn 2 ; }main(){ printf("%ld\n”,fib(10)); }5.阅读以下程序并填空。
该程序的功能是:用递归法求:1 + 2 + 3 + + n#include <stdio.h> long Sum(int n) { if(n> 1 )return n+Sum(n-1); else return 1 ;)6.阅读以下程序并填空。
c语言程序填空含答案在学习C语言的过程中,掌握程序填空的技巧是非常关键的。
程序填空题目可以帮助我们加深对C语言语法和逻辑的理解,并锻炼我们的编程思维能力。
在本文中,将为大家提供一些C语言程序填空题及其答案,希望对大家的学习有所帮助。
1. 下面是一个求最大公约数的C语言程序,请填写缺失的代码。
```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个正整数:");scanf("%d%d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2)); return 0;}```答案:```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个正整数:");scanf("%d%d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2));return 0;}```2. 下面是一个计算平均数的C语言程序,请填写缺失的代码。
```c#include <stdio.h>double average(int arr[], int length) {int sum = 0;for (int i = 0; i < length; i++) {sum += arr[i];}return sum / length;}int main() {int numbers[] = {5, 10, 15, 20, 25};int length = sizeof(numbers) / sizeof(numbers[0]);printf("平均数为:%.2f", average(numbers, length));return 0;}答案:```c#include <stdio.h>double average(int arr[], int length) {int sum = 0;for (int i = 0; i < length; i++) {sum += arr[i];}return (double)sum / length;}int main() {int numbers[] = {5, 10, 15, 20, 25};int length = sizeof(numbers) / sizeof(numbers[0]);printf("平均数为:%.2f", average(numbers, length));return 0;}```3. 下面是一个字符串反转的C语言程序,请填写缺失的代码。
程序填空题导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。
这类习题的设计就是要引导读者逐步掌握编程的方法。
本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。
在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。
【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include <stdio.h>main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);a= ①;b= ②;a= ③;printf("a=%d,b=%d\n",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( ②);}【3.3】下面的程序的功能是求一维数组中的最小元素。
findmin(int *s,int t,int *k){ int p;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])①;}main(){ int a[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}【3.4】下面程序的功能是计算1-3+5-7+ …… -99+101的值。
c语言程序填空题库及详解答案在C语言的学习过程中,程序填空题是一种常见的练习方式,它可以帮助学生加深对C语言语法和逻辑的理解。
下面是一个C语言程序填空题库的示例,包括题目和相应的详解答案。
题目一:计算圆的面积```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```题目二:判断闰年```c#include <stdio.h>int main() {int year;printf("请输入一个年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d 是闰年。
\n", year);} else {printf("%d 不是闰年。
\n", year);}return 0;}```题目三:求最大公约数```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2)); return 0;}```题目四:字符串反转```c#include <stdio.h>#include <string.h>void reverse(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverse(str);printf("反转后的字符串是:%s\n", str);return 0;}```题目五:计算阶乘```c#include <stdio.h>int factorial(int n) {if (n <= 1) {return 1;} else {return n * factorial(n - 1);}}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num));return 0;}```以上题目涵盖了C语言中的一些基础概念,如循环、条件判断、函数定义和数组操作。
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main()scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);} 三、阅读程序题(1)3.141593,3.1416,3.142(2)6,8(3)4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
C 语言程序设计题(程序填空)与详细解析请勿改动主程序main 及其他给定函数中的任何内容,仅在指定函数内的花括号中填入你编写的若干语句。
1.请编一个函数int day(int k,int m,int n),其功能是:返回小蚕需要多少天才能爬到树顶(树高k 厘米,小蚕每天白天向上爬m 厘米,每天晚上因睡觉向下滑n 厘米,爬到顶后不再下滑)(n <m <k )。
例如,若分别 输入253、71、29给 k 、m 、n ,则输出结果为:6。
include <conio.h>#include <stdio.h>#include <windows.h>int day( int k, int m, int n ) { }main(){ int k, m, n; system("cls");printf("\nPlease enter 3 numbers: ");scanf("%d %d %d", &k, &m, &n ); printf( "\nFor %d days, worm will be at the top.",day(k,m,n));}解析:在参考程序中用一个for 循环来统计天数,如果小蚕某一天白天爬到了树顶,则它就不会再往下滑。
因此我们应先判断小蚕是否是在白天爬到树顶,如果已经爬到了树顶就直接返回天数。
2.请编写函数fun ,其功能是:计算并输出下列多项式的值:S = 1 + 1/1! + 1/2! + 1/3! + 1/4! + ... + 1/n! 例如,在主函数中从键盘给n 输入15则输出为:s=2.718282。
注意:要求n 的值大于1但不大于100。
#include <stdio.h> double fun(int n) { } main(){ int n; double s; printf("Input n: "); scanf("%d",&n); s=fun(n);printf("s=%f\n",s); }解析:本题是求多项式的和,从中可以找出规律,各项式的分子为一阶乘数,可以通过循环先求出n!,然后求其倒数,将此值赋给一个变量,然后再求此变量的累加值。
程序填空题1.下述程序是一个选择排序程序,请填完整空缺部分。
Void select _sort (int p [ ], int n ){ int i, j, k, temp;for ( i =0 ;i<n-1; i ++ ){ k = i;for ( j=i+1; j<n ; j++)if ( p[j]<p[k]) k=j;if (k!=i) { temp= p[k]; p[k]=p[i];p[i]=temp;} }}main(){ int i,a[20];for (i =0; i<20; i++) scanf (“%d”,&a[i]); select_sort(a,20);for ( i = 0;i<20; i++)printf (“%d\t”,a*i+;printf (“\n”);}2.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。
# include <stdio.h>main(){ int a, b, c , i;a = c = 0 ;for(i=0;i<=10;i+=2){ a + = i ;b=i+1;c += b ;}printf ( “偶数之和= %d \n “, a ) ;printf ( “奇数之和= %d \n “, c –11 );}3.下面程序的功能是:输出100 以内能被3 整除且个位数为6 的所有整数,请填空:main(){ int i , j ;for ( i = 0 ;i<10; i + + ){ j = i * 10 + 6 ;if ( j%3!=0) continue ;printf ( “ %d” , j ) ;}}4.程序读入20个整数,统计非负数的个数,并计算非负数之和。
#include “stdio.h”main(){ int I,a[20],s,count;____s=count=0____;for(I=0;I<20;I++)scanf(“%d”,_&a[i]__);for(I=0;I<20;I++){if(a[I]<0)continue;s+=a[I];count++}printf(“s=%d\t count=%d\n”,s,count);}5.下面的程序用以分别求出数组两条对角线上的各元素之和。
【程序填空】功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
len=length(str...);I.nt length ........(p)N.++..;P.++..;【程序改错】功能:将一个字符串中的大写字母转换成小写字母。
bool (char)......fun(char *c)fun= c;(return *c)..........puts(*p);(putchar(*p)).............【程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。
------------------------------------------------*/ #include<stdio.h>void wwjt();void swap(int *a,int *b){/**********Program**********//********** End **********/ }main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(x<y)swap(&x,&y);if(x<z)swap(&x,&z);if(y<z)swap(&y,&z);printf("%3d%3d%3d",x,y,z);wwjt();}void wwjt(){FILE *IN,*OUT;int m,n;int i[2];IN=fopen("in.dat","r");if(IN==NULL){printf("Read FILE Error"); }OUT=fopen("out.dat","w"); if(OUT==NULL){printf("Write FILE Error"); }for(n=0;n<3;n++){for(m=0;m<2;m++){fscanf(IN,"%d",&i[m]);}swap(&i[0],&i[1]);fprintf(OUT,"%d\n",i[0]);fprintf(OUT,"%d\n",i[1]);}fclose(IN);fclose(OUT);}/*-------------------------------------------------------【程序填空】功能:输入3个数a,b,c,按从小到大的顺序输出。
3.下列程序计算1000以内能被3整除的自然数之和,请完成程序。
#include <iostream.h>void main(){int x=1, sum;[1]while(1){if( [2] )break;if( [3] )sum+=x;x++;}cout<<sum<<endl;}1. [1] #include <math.h> [2] break; [3] j>temp2. [1] a<b [2] i++ [3] i*a3.[1] sum=0; [2]x>1000 [3]x%3==0四、程序填空题1. 下面的函数fun未使用中间变量实现对两个数的交换,请完成下列函数的定义。
void fun(int &x, int &y){x+=y;y= [1] ;[2] ;}2.下面的函数bubble()是对整数数组a按升序排序的冒泡算法,其中,参数a存储将被排序的数据,size是数组a中存储的元素数目,请完成该函数。
void bubble(int a[], int size){[1] ;for(int p=1; [2] ; p++)for(int i=0; [3] ; i++)if(a[i]>a[i+1]){temp=a[i];[4] ;[5] ;}}3. 下面的函数Sort()用于对整数数组array按升序排序的选择排序算法,其中参数n表示array数组中存储的数组元素数。
例如,假设数组array中有10个元素,选择排序就是:先将10个数中的最小数与a[0]对换;再将a[1]到a[9]中的最小数与a[1]对换,….,直到排序完成。
请完成该函数。
void Sort( int array[], int n){int k;[1] ;for(int i=0; i<n-1; i++){[2] ;for(int j= [3] ; j<n; j++)if(array[j]<array[k])k=j;t=array[k];[4] ;[5] ;}}4. 以下程序的功能是求三角函数sinx的近似值,其计算精度为0.000001。
已知求sinx近似值的计算公式为:)!12()1(!7!5!31sin)12(1753..........nxxxxxxnn.其中,x的值为弧度。
当输入的x 值为度数时,将度数转化为弧度的公式为:1801415926.3xy.#include<iostream.h>#include<math.h>double sin(double x,double eps){double term,sum,y;int n=1;y=x*x;term= [1] ;sum=0;while(fabs(term)>=eps){sum += [2] ;n++;term = term*y/ [3] ;term *= -1;}return [4] ;}void main(void){double x,y;cout<<"请输入x的值(角度):" ;cin>>x;while(x>360)x -= 360;y= [5] ;cout<<"角度为"<<x<<"的sin值是"<<sin(y,1e-6)<<'\n';}1. [1]x-y [2]x=x-y或x-=y2. [1]int temp [2]p<size [3]i<size-p[4]a[i]=a[i+1] [5]a[i+1]=temp3. [1]int t; [2]k=i [3]i+1[4]array[k]=array[i] [5]array[i]=t4. [1]x [2]term [3]((2*n-1)*(2*n-2))[4]sum [5]3.1415926*x/180四、程序填空题1. 统计字符串中英文字母个数的程序。
#include <iostream>using namespace std;int count (char str[]);void main(){char s1[80];cout<<"Enter a line:";[1] ;cout<<"count="<<count(s1)<<endl;}int count (char str[]){int num=0;for (int i=0;str[i];i++)if (str[i]>='a' && str[i]<='z' || str[i]>='A' && str[i]<='Z') [2] ;return [3] ;}2.如果矩阵A乘以B得到C,则必须满足如下的规则:⑴矩阵A的列数等于矩阵B的行数;⑵矩阵A的行数等于矩阵C的行数;⑶矩阵B的列数等于矩阵C的列数;矩阵相乘的乘法公式为: ....nkkjikijbac1下面的函数MultiMatrix()用于求解整数矩阵的乘积,其中参数a、b和c分别表示存储乘数、被乘数以及乘积结果的二维数组,arow和acol、brow和bcol以及crow和ccol分别表示矩阵a的行数和列数、矩阵b的行数和列数以及矩阵c的行数和列数,且该函数被调用时的实参满足:acol<=4、bcol<=5及ccol<=5。
MultiMatrix()函数当提供的矩阵不满足矩阵相乘的条件时该函数返回1,否则返回0,请完成该函数。
int MultiMatrix(int a[][4], int arow, int acol,int b[][5], int brow, int bcol,int c[][5], int crow, int ccol){if(acol!=brow)return 1;if( [1] )return 1;if( [2] )return 1;for(int i=0; i<crow; i++)for(int j=0; [3] ; j++){[4] ;for(int n=0; [5] ; n++)c[i][j]+=a[i][n]*b[n][j];}return 0;}3. 下面的函数fun未使用中间变量实现对两个数的交换,请完成下列函数的定义。
插入排序是通过把数组中的元素插入到适当位置来进行排序的。
插入排序的步骤为:(1)将数组中的头两个元素按排序顺序排列(2)把下一个元素(第3个元素)插入到其对应于已排序元素的排序位置(3)对于数组中的每个元素重复(2),即把第4个元素插入到适当文职,然后是第5个,等等,直到所有元素都插入排序完成下面的程序利用了插入排序函数isort()进行排序,并在主函数中将排序前和排序后的数组元素打印,请将程序补充完整。
#include <iostream.h >void isort(int a[],int size)/*a为被排序数组,size为a中包含的元素个数*/{int inserter,index;for(int i=1;i< [1] ;i++){inserter=a[i];index=i-1;while(index>=0 && [2] ){a[index+1]=a[index];index--;}a[index+1]= [3] ;}}void main(){int array[]={55,2,6,4,32,12,9,73,26,37};int len= [4] ;for(int i=0;i<len;i++) cout<<array[i]<<",";cout<<endl;isort(array, [5] );for(int i=0;i<len;i++) cout<<array[i]<<",";cout<<endl;}1. [1] cin>>s1 [2] num++; [3] num2. [1]crow!=arow [2]ccol!=bcol [3]j<ccol[4]c[i][j]=0 [5]n<acol3. [1]size [2]inserter<a[index] [3]inserter[4]sizeof(array)/sizeof(int) [5]len五、程序填空题1. 下面程序要利用指针变量作为形参实现两个变量的值互换,请在下面的下划线处填入正确的程序代码,完成程序功能。
#include <iostream>using namespace std;int main(){void swap(int *,int *);int i=5,j=8;[1] ;cout<<i<<" "<<j<<endl;return 0;}void swap(int *p1,int *p2){int temp;temp=*p1;[2] ;[3] ;}2. 下面的函数Fun将一个整数字符串转换为一个整数。
# include <iostream># include <string>using namespace std;int Fun (char *str){int num, digital, len;[1] ;len=strlen(str);while (*str!=NULL){digital=*str-'0';for (int i=0; [2] ; i++)[3] ;len--;str++;num+=digital;}return num;}3. 以下程序求二维数组的最大值及其行列下标并打印。
#include <iostream>#include <iomanip>using namespace std;void find( int a[3][4], int *maxi, int *maxj ) {int i, j;*maxi=0; *maxj=0;for (i=0; i<3; i++)for (j=0; j<4; j++)if (a[i][j] [1] a[*maxi][*maxj])*maxi=i, *maxj=j;}void main(){int a[3][4]={{3,8,9,5},{0,-1,1,-2},{3,7,6,3}}, maxp, minp, i, j; find( [2] );cout<<"max="<< [3] <<endl;cout<<"i="<<maxp<<endl;cout<<"j="<<minp<<endl;}4. 下面程序要利用形参实现两个变量的值互换,请在下面的下划线处填入正确的程序代码,完成程序功能。