1填空题一、填空题1、表达式3*7%2+7%2*5的值为6。2、若定义了intx;则将x强制转化成双精度类型应该写成(double)x。3、设y是int型变量,请写出判断y为奇数的关系表达式[(y%2)==1或y%2或(y%2)!=0]5、在C语言中,实现循环的语句有:if-goto语句、while语句、do-while语句和for语句。6、设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。scanf(“%d”,k);printf(“%d\n”,*k);7、一个C语言程序总是从主函数开始执行。8、若输入字符串:abcde回车,则以下while循环体将执行1次。do{printf(“Hello!”);}while((ch=getchar())==‘y’);9、已知:int*p,a;则语句“p=&a;”中的运算符“&”的含义是取变量地址。11、函数直接或者间接地自己调用自己,被称为函数的递归调用。12、若已定义:inta[10],i;,以下fun函数的功能是:在循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10。请填空。fun(inta[]){inti;for(i=1;i=10;i++)a[i-1]=i;}14、’x’在内存中占1个字节,”x”在内存中占2个字节。15、数组在内存中占连续一片的存储区,用数组名代表其首地址。16、C语言是一种结构化程序设计语言,而结构化程序设计的基本结构有3种,分别是顺序结构、选择结构和循环结构。22、表达式8.0*(1/2)的值为0.0。33、用指针变量作为实参、形参,实现两个数的值互换,请填空。voidswap(int*p1,int*p2){intp;p=*p1;*p1=*p2;2*p2=p;}main(){inta=10,b=25;swap(&a,&b);printf(“\na=%d,b=%d”,a,b);}38、C语言规定,标识符只能由数字、字母、下划线3种字符组成,而且第一个字符必须是字母或下划线组成。42.已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是__5__。43、假设a是字符型变量,写出从键盘上输入一个字符并且赋值给a的语句:a=getchar()或scanf(“%c”,&a);48、C语言认为零为逻辑假,非零为逻辑真。51、定义了数组inta[3],若想使指针p指向数组a,则定义语句为__int*p=a;______。52、C语言的数据类型中,构造类型共有三种,其中__数组_____是同一类型的数据项占连续存储空间,_结构体_____是若干不同类型的数据项占连续存储空间。53、从编写好一个C程序到完全运行,一般要经历四步,分别为编辑、__编译______、连接和执行。57、设有以下变量定义,并已赋确定的值charw;intx;floaty;doublez;则表达式:w*x+z-y所求得的数据类型为double。64、一个C程序由若干个函数组成,其中必须有一个___main()___函数。二、程序填空:阅读程序。在划线处填写适当的表达式或语句,使程序完整并符合题目要求1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。main(){charch;ch=getchar();if(ch=’a’&&ch=’z’||ch=’A’&&ch=’Z’)printf(ItisanEnglishcharacter\n);elseif(ch=’0’&&ch=’9’)printf(Itisadigitcharacter\n);3elseif(ch==‘’)printf(Itisaspacecharacter\n);elseprintf(Itisothercharacter\n);}2.10个学生成绩按选择法排序main(){floata[10],t;inti,j,k;printf(Pleaseenterscore:\n);for(i=0;i10;i++)scanf(“%d”,&a[i]);for(i=0;i9;i++){k=i;for(j=i+1;j10;j++)if(a[j]a[k])k=j;if(i!=k){t=a[i];a[i]=a[k];a[k]=t;}}printf(Sortedresults:\n);for(i=0;i10;i++)printf(%4.1f\n,a[i]);}3.自定义一函数求n!,编写程序输入n,输出n!.longjc(intn){intilongp=1;while(i=n){p=p*i;i++;}returnp;}voidmain(){intn;printf(Pleaseentern:);scanf(%d,&n);printf(%d!=%ld\n,n,jc(n));}4.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。用输入0来结束输入,用i,j来放统计数,请填空完成程序。4voidmain(){intn,i=0,j=0;printf(“inputainteger,0forend\n”);scanf(“%d”,&n);while(n或n!=0){if(n0)i=i+1;elsej=j+1;}printf(“i=%4d,j=%4d\n”,i,j);}5.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。#includestdio.hvoidmain(){inta[10],i,x;printf(“input10integers:”);for(i=0;i10;i++)scanf(“%d”,&a[i]);printf(“inputthenumberyouwanttofindx:”);scanf(“%d”,&x);for(i=0;i10;i++)if(x==a[i])break;if(i10)printf(“theposofxis:%d\n”,i);elseprintf(“cannotfindx!\n”);}8.下面是判断一个数是否为素数的函数/*函数功能:判断参数是否是素数函数入口参数:整型数,要求为正整数函数返回值:非0值表示是素数,否则不是素数*/#includemath.hintIsPrime(intnumber){inti;if(number=1)/*负数、0和1都不是素数*/return0;for(i=2;isqrt(number);i++)if(number%i==0)/*被整除,不是素数*/return0;return1;}59.编程计算1+3+5+……+101的值#includestdio.hvoidmain(){inti,sum=0;for(i=1;i=101;i++)sum=sum+i;printf(sum=%d\n,sum);}10.输入一个学生的成绩(在0~100分之间),进行五级评分并显示。#includestdio.hvoidmain(){intscore;scanf("%d",&score);if(score=0&&score=100)switch(___score/10___){case10:case9:printf("Excellent\n");break;case8:printf("Good\n");break;case7:printf("Middle\n");break;case6:printf("Pass\n");__break____;default:printf("Nopass\n");}}11.排序函数:用交换法按成绩由高到低对学生成绩重新排序函数参数:实型数组score,存储学生成绩整型变量n,代表数组元素个数函数返回值:无voidSort(floatscore[],intn){inti,j;floattemp1;for(i=0;in-1;i++){for(j=i+1;jn;j++)if(score[j]score[i]){temp1=score[j];score[j]=score[i];score[i]=temp1;}}}12.编程计算1+3+5…+99的值6main(){inti,sum=0;i=1;while(i100){sum=sum+i;i++;}printf(sum=%d\n,sum);}15.从键盘输入一个字符,判断它是否是英文字母。#includestdio.hvoidmain(){charc;printf(inputacharacter:);c=getchar();if(c=‘A’&&c=‘Z’||c=‘a’&&c=‘z’)printf(Yes\n);elseprintf(No);}16.以下使用数组来处理打印斐波那契数列的前20项的程序。打印时,每行打印10个数字。斐波那契数列的格式为:当n=0时,f[0]=0,当n=1时,f[1]=1,当n1时,f[n]=f[n-1]+f[n-2]#include“stdio.h”voidmain(){intfbn[20];intline=0,j;fbnq[0]=0;fbnq[1]=1;for(j=2;j20;j++)fbnq[j]=fbnq[j-1]+fbnq[j-2];for(j=0;j20;j++){printf(“%d”,fbnq[j]);line++;if(line==10){line=0;printf(“\n”);}}719.程序读入20个整数,统计非负数个数,并计算非负数之和。#includestdio.hmain(){inti,a[20],s,count;s=count=0;for(i=0;i20;i++)scanf(“%d”,&a[i]);for(i=0;i20;i++){if(a[i]0)continue;s+=a[i];count++;}printf(“s=%d\tcount=%d\n”,s,count”);}