一、填空题
1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union
{int n;doublex;}num; num.n=10; num.x=10.5;
printf(\"_______\",_______);
2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
3、C语言源程序的基本单位是________
4、若有定义语句:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是_______
5、在C语言的赋值表达式中,赋值号左边必须是_______
6、设x为无符号整数。表达式x^(~(~0< 8、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。 9、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。 10、下面程序段的运行结果是_______。 char*s1=\"AbcdEf\", *s2=\"aB\"; int t;s1++; t=(strcmp(s1,s2)>0); printf(\"%d\\n\",t); 二、选择题 11、若x、i、j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值为( )。 A.4 B.16 C.32 D.52 12、若有代数式𝑏𝑐,则不正确的C语言表达式是( )。 A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3 13、一个C程序的执行是从( ) A.本程序的main函数开始,到main函数结束 B.本程序的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的main函数开始,到本程序文件的最后一个函数结束 D.本程序的第一个函数开始,到本程序main函数结束 14、以下叙述正确的是 3𝑎𝑐 A.在C程序中,main函数必须位于程序的最前面 B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句 D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 15、若有说明:inta[10];,则对a数组元素的正确引用是( )。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] 16、设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是( )。 A.x=10 B.x=10 C.x=10 D.x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10 17、若有以下定义和语句,则对a数组元素的正确引用为( )。 int a[2][3],(*p)[3]; p=a; A.(p+1)[0] B.*(*(p+2)+1) C.*(p[1]+1) D.p[1]+2 18、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) A.extern B.register C.auto D.static 19、以下for循环的执行次数是( )。 for(x=0,y=0;(y=123)&&(x<4);x++); A.是无限循环 B.循环次数不定 C.执行4次 D.执行3次 20、语句while(!E);中的表达式!E等价于( )。 A.E==0 B.E!=1 C.E!=0 D.E==1 21、以下程序( )。 #include {int a=5,b=0,c=0; if(a=b+C.printf(\"***\\n\"); else printf(\"$$$\\n\"); return 0; } A.有语法错不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$ 22、下面程序的运行结果是( )。 #include {char a[80]=\"AB',b[80]=\"LMNP\";inti=0; strcat(a,B.; while(a[i++]!=‘\\o’)b[i]=a[i]; puts(B.; return 0; } A.LB B.ABLMNP C.AB D.LBLMNP 23、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请选择填空。( ) #include {char s[80],c1,c2='';int i=0,num=0; gets(s); while(s[i]!='\\o') { c1=s[i]; if(i==0)c2=''; else c2=s[i-1]; if(【】)num++; i++; printf(\"There are%d words.\\n\",num); return 0; } A.c1==′′&&c2=='' B.cl!= ''&&c2=='' C.c1==''&&c2!=''D.cl!=''&&c2!='' 24、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include float f(float,float); int main() {floatx,y,z,sum; scanf(\"%f%1%f\",8.x,&y,8.z); sum=f(【】)+f(z+y,z-y); printf(\"sum=%fNn\",sum); return(0); } float f(float a,float B. {float value; value=a/b; return(value); } A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y25、下面程序的运行结果是( )。 #include printf(\"%d\\n\",num); return 0; } A)1 B) 1,2 C) 1,2,3 D)1,2, 3, 4 三、读程序填空 26、以下程序的输出结果为_______. #include {printf(\"*%f,%4.3f*\\n\",3.14,3.1415); return0; } 27、以下程序的输出结果是_______。 #include printf(\"a=%oa=%#o\\n\",a,a); printf(\"a=%xa=%#x\\n\",a,a); return 0; } 28、函数yanghui能够按以下形式构成一个杨辉三角形。请填空。 1 1 1 1 2 1 1 3 2 1 1 4 3 2 1 # include void yanghui(int a[] [N]) { int i,j; for(i=0;i 29、以下程序的功能是根据输入的y(Y)与n(N),在屏幕上分别显示出This is YES.与This is NO.。请填空。 #include case'Y':printf(\"\\nThis is YES.\\n\");_______; case'n': case'N': printf(\"\\nThis is NO.\\n\"); } int main() {char ch; printf(\"\\nEnter a char'y','Y\"or'n','N':\"); ch=[2]; printf(\"ch:%c\ YesNo(ch); return(0); } 30、下面程序段的运行结果是_______。 for(a=1,i=-1;-1<=i<1;i++) {a++;printf(\"%2d\",a);} printf(\"%2d\",i); 31、下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。请填空。 #include {int a[3]={5,9,19}; int b[5]={12,24,26,37,48}; intc[10],i=0,j=0,k=0; while(i<3&&.j<5) if(_______) {c[k]=b[];k++;j++;} else {c[k]=a[i];k++;i++;} while(_______) {c[k]=a[i];i++;k++;} while(_______) {c[k]=b[];k+十;j++;} for(i=0;i 重量与邮资 重量/kg weigh<10 10 { float len, weigh, hei, wid, mon,r; scanf(\"%f %f %f %f\ if(len>1|| wid>1|| hei>1 || weigh>30)___________; else if (weigh<10) r=0.8; else if (weigh<=20) r=0.75; else if (weigh<=30) ___________; if (r==-1) printf(\"error\\n\"); else {___________;printf(\"%f\ return 0; } 33、下面程序的功能是将两个字符串s1和s2连接起来。请填空。 #include void conj(char*p,char*P2); int main() {char sl[80],s2[80]; gets(s1);gets(s2); conj(s1,s2); puts(s1); return(0); } void conj(char*pl,char*p2) {char*p=pl; while(*p1)_______; while(*p2){*p1=_______;pl++;p2++;} *p1='\\0'; } 四、编程题 34、请定义枚举类型money,用枚举元素代表人民币的面值。包括1、2、5分;1、2、5角;1、2、5、10、50、100元。 35、设有一个unsignedlong型整数,现要分别将其前2个字节和后2个字节作为2个unsigned int型整数输出(设一个int型数据占2个字节),试编一函数partition实现上述要求。要求在主函数中输入该long型整数,在函数partition中输出结果。 参考答案 一、填空题 1、【1】%If【2】num.x 2、【1】scanf【2】printf 3、函数 4、-16 5、变量 6、【1】~0得到一个全1的数 【2】(~0< 9、double a[M][M]={0}; 10、1 二、选择题 11、C 12、C 13、A 14、C 15、D 16、A 17、C 18、D 19、C 20、A 21、D 22、D 23、B 24、B 25、C 三、读程序填空 26、*3.140000,3.142* 27、a=374囗囗a=0374 a=fc囗囗a=0xfc (注:答案中的囗代表空格) 28、【1】i=1【2】j<=i-1【3】a[i-1][j-1] 29、【1】break【2】getchar() 30、-1 31、【1】a[i]>b[]【2】i<3【3】j<5 32、【1】r=-1【2】r=0.7【3】mon=wei*r+0.2 33、【1】p1++【2】*p2 四、编程题 34、Enum money {fen1=1,fen2=2,fen5=5,jiaol=10,jiao2=20,jiao5=50, yuan1=100,yuan2=200,yuan5=500,yuanl0=1000, yuan50=5000,yuan100=10000 }; 35、void partition(unsigned long int num) {union a {unsigned int part[2]; unsigned long int w; }n,*p; p=&n;n.w=num; printf(\"long int=%lx\\n\",num); printf(\"low-part num=%0x,high-part num=%0x\\n\", p->part[0],p->part[1]); int main() {unsigned long intx; x=0×23456789; partition(x); return 0; } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务