}
(1) i==j (2) a[i][j]
7. 下面程序将十进制整数base转换成n进制,请填空使程序完整。 main ( )
{ int i=0,base,n,j,num[20] ; scanf(“%d”,&n); scanf(“%d”,base) ; do { i++;
num[i]= ________(1)________; n=________(2)________; } while (n!=0);
for (________(3)________) ; printf(“%d”,num*j+) ; } (1) (2) (3)
8. 下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然
后输出调整后的10个数,请填空使程序完整。 main ( )
{ int a[10],max,min,i,j,k ; for (i=0; i<10; i++) scanf(“%d”,&a*i+); max=min=a[0]; for (i=0; i<10; i++) {
if (a[i]
i = a[j]; a[j] = a[k]; a[k] = i;
for (i=0; i<10; i++) printf(“%d”,a*i+); } (1) j=i (2) k=i
9. 下面程序用“插入法”对数组a进行由小到大的排序,请填空使程序完整。
经典算法提示:
简单插入排序算法的基本思想使将数组处理n-1次,第k次处理是将第k个元素插入到目前的位置。第k次的元素是这样插入的:在第k次处理时,前面的元素a*0+,a*1+,…,a*k-1]必定已排成了升序,将a[k]与a[k-1],a[k-2+,…a*0+逐个比较(由后向前),若有a[j]
{ int a[10]={191,3,6,4,11,7,25,13,89,10} ; int i,j,k ;
for (i=1; i<10; i++) { k = a[i] ;
j = ________(1)________; while (j>=0 && k>a[j] ) { ________(2)________; j--; }
________(3)________=k ; }
for (i=0; i<10; i++) printf(“%d”,a*i+); } (1) i
(2) a[i] = a[j] (3) a[j]
10. 下面程序用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序
数组,请填(3)空使程序完整。 main ( )
{ int a[3]={5,9,10} ;
int b[5]={12,24,26,37,48} ; int c[10],i=0,j=0,k=0 ; while (i<3 && i<5)
if (________(1)________) { c[k]=b[j] ; k++ ; j++ ; } else {
c[k]=a[j] ; k++ ; i++ ; }
while (________(2)________) { { c[k]=a[j] ; i++ ; k++ ; }
while (________(3)________) { { c[k]=b[j] ; j++ ; k++ ; }
for (i=0; i (1) a[i]>b[j] (2) i<3&&j>=5 (3) j<5&&i>=3 11. 下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后 的结果保存到b数组中,并按矩阵形式输出a和b,请填空使程序完整。 数组a 数组 main ( ) { int a[2][3]{{4,5,6},{1,2,3}}, b[2][3], i,j; for (i=0; i<2 ; i++) for (j=0; j<3 ; j++ ) { printf(“]”,a*i+*j+); ________(1)________; } printf(“\\n”); } for (________(2)________) b[i][0]=a[i][2]; for (i=0; i<2 ; i++) { for (j=0; j<3 ; j++) { printf(“]”,b*i+*j+); ________(3)________; } printf(“\\n”); } } (1) b[i][j+1] (2) (3) 12. 下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出 该字符在字符串中第一次出现的位置(下标值),否则输出-1,请填(2)空使程序完整。 # include , char c=’a’ ; /* 需要查找的字符*/ char t[50] ; int i,j,k; gets(t) ; i = ________(1)________; for (k=0; k if (________(2)________) { j = k ; break ;} else j=-1; printf(“%d”,j); } (1) 0 (2) t[i]==c (3) break 13. 下面程序用“顺序查找法”查找数组a中是否存在某一关键字,请填空使程序完整。 main ( ) { int a[10]={25,57,48,371,123,291,18,22,44}; int i=0,x ; scanf(“%d”,&x); while (________(1)________) i++ ; if (________(2)________) printf(“found=%d\\n”,i); else printf(“can\\’t found!\\n”); } (1) a[i]!=x&&i<10 (2) i<10; 14. 以下程序是求矩阵a,b的乘积,结果存放在矩阵C中并按矩阵形式输出,请填(3)空使程 序完整。 main ( ) { int a[2][3]={2,10,9,4,5,119}, b[2][2]={-1,-2,-3,-4}; int i,j,k,s,c[3][2]; for (i=0; I<3; i++) for (j=0; j<2; j++) { ________(1)________ for (k=0; k<2; k++) s+=________(2)________; c[i][j]=s; } for (i=0; i<3; i++) for (j=0; j<2; j++) { printf(“m”,c*i+*j+); ________(3)________; } } (1) s=0 (2) a[i][j]*b[j][k] (3) printf(\ 15. 以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填空使 程序完整。 main ( ) , char a*40+=”Great ”, b* +=”Wall”; int i=0,j=0 ; while (a*i+!=’\\0’) i++ ; while (________(1)________) { a[i]=b[j] ; i++ ; j++ ; } ________(2)________; printf(“%s\\n”,a); } (1) b*j+!=’\\0’ (2) a*i+=’\\0’ 16. 以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。 #include FILE _________(1)___________; fp1=fopen(“file1.c”,”r”); fp2=fopen(“file2.c”,”w”); while (!feof(fp1)) putchar(getc(fp1)); _________(2)___________ while (!feof(fp1)) putc(_________(3)___________); fclose(fp1); fclose(fp2) ; } (1) *fp1,*fp2 (2) rewind(fp1); (3) getc(fp1),fp2 (三)程序设计 1. 设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。 用scanf输入数据,输出计算结果;输出时要求有文字说明,取小数点后2位数字,请编写程序。 提示:使用圆的相关公式,用printf输出时,设置输出格式 2. 给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’, 70-79分为’C’,60-69分为’D’,60分以下为’E’。 提示:使用switch...case语句 3. 给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③ 按逆序打印出各位数字,例如原数是321,应输出123。 提示:统计位数,采用循环相除法,每次循环对10取模,结果顺序输出 4. 求 (即求1!+2!+3!+…+19!+20!)。 提示:二重循环,内层循环负责计算阶乘,外层循环进行累加 5. 编写程序: (1)求一个字符串S1的长度; 提示:用while循环,到s1*i+==’\\0’结束循环,循环体内为len++,len为字符串长度,初值为0 (2)将一个字符串S1的内容复制给另一个字符串S2; 提示:用while循环,到s1*i+==’\\0’结束循环,s2[i] = s1[i]; (3)将两个字符串S1和S2连接起来,结果保存在S1字符串中; 提示:用while循环找到s1最后一个字符下标i,然后s1[i+j] = s2[j] (4)搜索一个字符在字符串中的位置(例如:’I’在”CHINA”中的位置为3)。如果没有搜索到,则位置为-1。 提示:用while循环,到s1*i+==’\\0’结束循环,找到后,记录位置并使用break语句跳出循环 (5)比较两个字符串S1和S2,如果S1>S2,输出一个正数;如果S1=S2,输出0;如果S1 提示:用循环依次比较s1[i]与s2[i]的值,如果一直相等直到它们都为’\\0’,则相等,否则比较ASCII码的大小 以上程序均使用gets或puts函数输入,输出字符串。不能使用string.h中的系统函数。 6. 将一个3×3阶矩阵转置,用一函数实现之。在主函数中用scanf函数输入矩阵元素, 存放在数组中,以数组名作为函数实参。在主函数中输出已转置的矩阵。 提示:函数原型void Reverse(int [][],int [][]),函数体中,用二重循环,令b[j][i]=a[i][j]即可 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《C语言程序设计》 复习大纲(4)在线全文阅读。
相关推荐: