一、填空题
1、请读程序段: int a=1,b=2;
if(a&b)printf(\"***\\n\"); else printf(\"$$ $\\n\"); 以上程序段的输出结果是_______。
2、C语言源程序文件的后缀是 ;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的后缀是
3、一个C语言源程序由若干函数组成,其中至少应含有一个________
4、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。
5、若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后a的值为_______,b的值为_______,c的值为_______。
6、以下程序段通过移动指针变量m,给如图9-7所示连续动态存储单元赋值。请填空。(假设程序段中的所有变量均已正确说明。)
for(k=0;k<10;k++,m++)scanf(\"%d\",_______);
7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。请填空。
for(x=0;x<=30;x++) {y=30一x;
if(_______)printf(\"%d,%d\\n\",x,y); }
8、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。
a+=_______;b=a-_______;a-=_______;
9、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data; _______ }node;
10、下面程序段的运行结果是_______。 int i=5;char c[6]=\"abcd\"; do{c[i]=c[i-1];}while(--i>0); puts(c);
二、选择题
11、下列4组选项中,不是C语言关键字的选项是。( ) A.define B.getc C.include D.while
IF char scanf go
Type printf case pow
12、以下表达式值为3的是( )
A.16-13%10 B.2+3/2 C.14/3-2 D.(2+6)/(12-9) 13、设有如下程序:
#include {char ch1='A',ch2='a'; printf(\"%c\\n\",(chl,ch2)); return 0; } 则以下叙述中正确的是( )。 A.程序的输出结果为大写字母A B.程序的输出结果为小写字母a C.运行时产生错误信息 D.格式说明符的个数少于输出项的个数,编译出错 14、根据以下定义语句和数据的输入方式,scanf语句的正确形式应为。 已有定义:float fl,f2; 数据的输入方式:4.52<回车> 3.5<回车> A.scanf(\"%f,%f\",&f1,&f2); B.scanf(\"%f%f\",&fl,&f2); C.scanf(\"%3.2f%2.1f\",&f1,&f2);D.scanf(\"%3.2f%2.1f\",&fl,&f2); 15、若有说明:inta[3][4];,则对a数组元素的正确引用是( )。 A.a[3][4] B.a[1,3] C.a[i+1][0] D.a(2)(1) 16、以下叙述不正确的是( ) A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数 D.在C程序中,注释说明只能位于一条语句的后面 17、以下for循环的执行次数是( )。 for(x=0,y=0;(y=123)&&(x<4);x++); A.是无限循环 B.循环次数不定 C.执行4次 D.执行3次 18、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) A.extern B.register C.auto D.static 19、若有说明语句,则以下不正确的叙述是( )。 char a[]=\"It is mine\";char*p=\"It is mine\"; A.a+1表示的是字符t所在存储单元的地址 B.p指向另外的字符串时,字符串的长度不受限制 C.p变量中存放的地址值可以改变 D.a中只能存放10个字符 20、若有说明:char*language[]={\"FORTRAN\",\"BASIC\",\"PASCAL\", \"JAVA\",\"C\");则表达式*language[1]>*language[3]比较的是( )。 A.字符F和字符P B.字符串BASIC和字符串JAVA C.字符B和字符J D.字符串FORTRAN和字符串PASCAL 21、以下程序的运行结果是( )。 #include {int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(\"%d\\n\",r); return(0); } A.-16 B.-17 C.17 D.16 22、下面程序段的运行结果是( )。 charc[5]={'a',b',\\o','c','\\o'); printf(\"%s\",C.; A.'a''b' B.ab C.ab口c D.ab口(其中口表示1个空格) 23、下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。请选择填空。 #include {char a[]=\"acegikm\",b[]=\"bdfhjlnpq\"; charc[80],*p; int i=0,j=0,k=0; while(a[i]!=\\o'&&b[j]!='\\o') {if(a[i]k++; } c[k]='\\o'; if(a[i]== '\\0')p=b+j; else p=a+i; strcat(c,p); puts(C.; return 0; } A.c[k]=a[i];i++;B.c[k]=a[j];i++;C.c[k]=a[i];j++;D.c[k]=a[j];j++; 24、以下程序( )。 #include {int a=5,b=0,c=0; if(a=b+C.printf(\"***\\n\"); else printf(\"$$$\\n\"); return 0; } A.有语法错不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$ 25、下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空(#include if(b%c==0)break; if(c>sqrt(B.)d=【】; else break; for(c=2;c<=sqrt(D.;c++) if(d%c==0)break; if(c>sqrt(D.)printf(\"%d=%d+%d\\n\",a,b,D.; } return 0; ) } A.a+b B.a-b C.a*b D.a/b 三、读程序填空 26、以下程序的输出结果是_______。 #include double x=3.1415926; printf(\"a=%+06dx=%+e\\n\",a,x); return 0; } 27、有以下程序: #include scanf(\"%d%c%c”,&k,&c1,&c2); printf(\"%d,%c,%c\\n\",k,c1,c2); return 0; } 若运行时从键盘输入:55AB<回车>,则输出结果是_______。 28、以下程序的运行结果是_______。 #include } 29、以下程序的运行结果是_______。 #include printf(\"\%d\%d\\n\",x,z); if(z=(y==0))x=5; x=4; printf(\"\%d\%d\\n\",x,z); if(x=z=y)x=4; printf(\"\%d\%d\\n\",x,z); return 0; } 30、下面程序的功能是用公式: 𝜋 =+22+32+⋯𝑛2 6121111 求𝜋的近似值,直到最后一项的值小于10-6为止。请填空。 # include while(i*i<=10e+6) { pi=______;i++;} pi=sqrt(6.0* pi); printf(\"pi=%10.61f\\n\ return 0; } 31、以下程序的运行结果是输出如下图形。请填空。 # include for(j=0;j<=7-i;j++) printf(\"\"); for(k=0;k<_______;k++) printf(\"x\"); printf(\"\\n\"); } int main() {int i; for(i=0;i<3;i++)_______; for(i=3;i>=0;i--)_______; return(0); } 32、下面程序段的功能是将字符串a中下标值为偶数的元素由小到大排序,其他元素不变。请填空。 char a[]=\"labchmfye\",t;int i,j; for(i=0;i<7;i+=2) for(j=i+2;j<9;_______) if(_______) {t=a[i];a[i]=a[j];a[j]=t;j++;} puts(a); 33、下面程序的功能是比较两个字符串(即字符数组)是否相等,若相等则返回1,否则返回0。请填空。 #include while(_______&&_______) i++; return(_______); } int main() {char a[6],b[7]; int i; scanf(\"%s%s\",a,b); i=f(a,b); printf(\"%d\",i); return(0); } 四、编程题 34、已有变量定义和函数调用语句int x=57;isprime(x);函数isprime()用来判断一个整型数a是否为素数;若是素数,则函数返回1,否则返回0。请编写isprime函数。 int isprime(int a) { } 35、编写程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串,请用指针完成。 参考答案 一、填空题 1、$$$ 2、【1】.c【2】.obj【3】.exe 3、主函数(或main函数) 4、9 5、【1】6【2】4【3】2 6、m 7、2*x+4*y==90 8、【1】b【2】b【3】b 9、structs*next; 10、aabcd 二、选择题 11、A 12、B 13、B 14、B 15、C 16、D 17、C 18、D 19、D 20、C 21、B 22、B 23、D 24、D 25、B 三、读程序填空 26、a=+00325囗囗囗x=+3.14159e+00 (注:答案中的囗代表空格) 27、55,,A 28、1,-13,-7 29、4 -2 4 0 4 -2 30、【1】double【2】pi+1.0/(i*i) 31、【1】2*i+1【2】a(i)【3】a(i) 32、【1】j++【2】a[i]>a[j] 33、【1】s[i]==t 【2】s[i]!='\\o'【3】(s[i]== '\\0'&&t[i]== '\\o')?1:0 四、编程题 34、int isprime(int a) {int i; for(i=2;i {static char x[]=\"computer\"; char*p; for(p=x;p 因篇幅问题不能全部显示,请点此查看更多更全内容