《C语言程序设计》期中练习(1-6章)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题 1、执行”int k=11;k=1/3*k++;”后,k 的值是( ) A0 B3 C4 D 12 2、以下常量中正确的是( ) A ‘abc’ B ‘\x123’ C 3.14E-1.2 D “a” 3、以下所列语句中,合法的语句是( ) A a=1,b=2 B ++a; C a=a+1=3; D y=int(a) 4、以下不致造成死循环的语句是( ) A for(y=0,x=1; x>++y; x=i++) i=x; B for(; ; x+=i); C while(x=8) x--; D for(i=10,sum=0; sum<=i) sum=--i; 5、设有定义”float y=3.45678; int x; ” 则以下表达式能实现将 y 中的数值保留小数点后 2 位,第 3 位四舍五入的表达式是( ) A y=(y*100+0.5)/100.0 B x=y*100+0.5,y=x/100.0 C y=y*100+0.5/100.0 D y=(y/100+0.5)*100.0 6、以下程序的输出结果是( ) #define PI 3.14 #define F(y) ((y)*(y)) #define P(a) printf(“%d”,a); main() {int x=PI; P(F(1+2)*x); } A 10 B 25 C 15 D 27 7、当需要定义一个函数时,以下( )不能用作函数名。 A scanf B for C _sum D F2 8、以下对 break 语句使用的正确描述是( ) A 可以出现在程序中的任何位置 B 只能出现在循环结构或 switch 结构中 C 只能出现在 switch 结构中 D 只能出现在循环结构中 9、若有声明语句”int a[10],b[3][3];”,则对以下数组元素赋值的操作中,不会出现越界访问的是 ( ) A a[-1]=0 B a[10]=0 C b[3][0]=0 D b[0][3]=0 10、下列一维数组声明正确地是( ) A int a[ ]; B int n=10,a[n]; C int a[10+1]={1}; D int a[2]={1,2,3} 11、已知有预处理命令“#include <stdio.h>”和声明“char s[10]=”thank you”; int i;” ,要求输出 字符串“thank you” ,以下选项中不能达到该要求的语句是( ) A puts(s); B printf(“%s”,s[10]); C for(i=0; s[i]!=’\0’;i++) printf(“%c”,s[i]); D for(i=0; s[i]!=’\0’;i++) putchar(s[i]); 12、若有声明语句“char s1[10]={0},s2[10]=”books”;” ,则能将字符串“books”赋给数组 s1 保存 的表达式是( ) A s1=”books”; B strcpy(s2,s1); C s1=s2; D strcat(s1,s2); 二、填空题 第 页 总 页
n2 +1 x −6 1、以下程序的功能是计算级数 ∑ 的值,要求通项的绝对值大于等于 10 n! 2 n =0
∞ n
___________________ main() { float x,s=0,t=1; int n=1; scanf(%f”, &x); do{ t=t*_________________________; s=s+(n*n+1)*t; while(____________>1e-6); } 2、下面程序用插入法对数组 a 进行降序排序。请填空 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=1; i<5;i++) { m=a[i]; j=___________; while(j>=0&&m>=a[j-1]) {______________; j--; } 第 页 总
------金陵科技学院考试卷
4、下面程序的运行后,输出结果的第一行是____________,第二行是____________,第三行是 ____________。 #include “stdio.h #define N 3 main() { int a[N][N],b[N*N]={1,1},i,j; for(i=2;i<N*N;i++) b[i]=b[i-1]+b[i-2]; for(i=0;i<N;i++) for(j=0;j<N;j++) a[j][i]=b[i*N+j]; for(i=0;i<N;i++) { for(j=0;j<N;j++) printf(“%5d”,a[i][j]); printf(“\n”); } } 5、当运行以下程序时,从键盘输入: CON<CR> BOOK<CR> CUTCR<CR> GAME<CR> PAGE<CR> (<CR>表示回车),则下面程序的运行结果是____________ main() { int i; char str[10],temp[10]=”CONTROL”; for(i=0; i<5; i++) { gets(str); if(strcmp(temp,str)<0) strcpy(temp,str); } puts(temp); } 四、完善程序题 ____________=m; } for(i=0; i<5; i++) printf(“%d”,a[i]); } 3、下面程序的功能是不用 strcat 函数将 str1 和 str2 连接起来。 # include <stdio.h> main() { char str1[20], str2[10]; int i=0,j=0; gets(str1); gets(str2); while(______________) i++; while(___________) str1[i++]=str2[j++]; ____________________; puts(str1); } 五、改错题 找出下面程序中的错误,并改正。 程序说明: 函数的功能是:在给定的一 5*5 矩阵中输出所有元素 a[i][j],满足其第 i 行上所有元素之和等 于第 j 列上的元素之和(0<=i<5,0<=j<5). #include"stdio.h" main() { int i,j, row,col,sum1,sum2; int a[5][ ]={{2,8,1,9,4},{5,7,1,3,0},{7,1,7,5,2},{3,2,2,1,5},{0,2,1,6,8}}; sum1=sum2=0; for(i=0;i<5;i++) for(j=0;j<5;j++) { for(col=0;col<5;col++) sum1+=a[i][col]; for(row=0;row<5;row++) sum2+=a[j][row]; if(sum1=sum2) printf("a[%d][%d]: %d\n",i,j,a[i][j]); } } 五、编程题 1、编程实现下列命题“若一个三位数是 37 的倍数,则将这个三位数的三个数字循环移位得到另 两个三位数也是 37 的倍数” 。例如 148 是 37 的倍数,481 和 841 也是 37 的倍数。 2、编程实现下列功能:从键盘输入一个四位整数,将其变成数字字符串,并在任两个数字字符 之间插入空格。输出该数字字符串。 如:输入 1997,输出 1_9_ 9_ 7(_表示空格)
------金陵科技学院考试卷
《C 语言程序设计》前六章综合练习
姓名 学号 得分
1、以下程序段的输出结果是__________________ int a=0,b=4,k=2; k=a+1>0||(++a<0)&&(!(b--<=0)); printf(“a=%d,b=%d,k=%d”,a,b,k); 2、以下程序段的输出结果是__________________ int a=0,b=1,c=0; if(a=--b+c) printf(“yes”); else printf(“no”); 3、已知 int a=5; a+=a-=-a*a; 则 a 的值是_________________ 4、已知 int i,j; j=(i=1,i+9)>9?i++||++i:++i; 则 i=_______________,j=_______________ 5、执行“for(s=0,i=1;i<11;i++) {if(i==6) continue; s+=i; }后 s=_________________ 6、若二维数组 a 有 m 行 n 列,则在存储该数组时,a[i][j]之前有______________个数组元素。 7、执行以下程序段后,number 的值是____________ char str[ ]=”Hello!”; int number; number=sizeof(str); 8、系统库函数 scanf 和 gets 在被调用执行时都可以读取从键盘输入的一串数字字符,其中函数 ____________具有将读取的数字字符串转换为整型数的功能。 三、阅读程序写结果 1、下面程序的运行结果是_____________ main{} { int a=1,b=0; switch(a) { case 1: switch (b) { case 0: printf(“**0**”); break; case 1: printf(“**1**”); break; } case 2: printf(“**2**”); break; } } 2、下面程序的运行结果是_____________ main() { int x,y; for(x=1,y=1;x<=100;x++) { if(y>=20) break; if(y%3==1) {y+=3; continue; } y-=5; } printf(“%d\n”,x); } 3、从键盘输入 18 并回车后,下面程序的运行结果是____________ main() { int x,y,i,a[8],j,u,v; scanf(“%d”,&x); y=x;i=0; do { u=y/2; a[i]=y%2; i++; y=u;} while(y>=1); for(j=i-1;j>=0;j--) printf(“%d”,a[j]); } 第 出卷教师 常子楠 教研(实验)室主任 页 总 页
_____________;}
页 出卷教师 常子楠 教研(实验
相关文档
最新文档