77范文网 - 专业文章范例文档资料分享平台

《C语言程序设计》 复习大纲(4)

来源:网络收集 时间:2019-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

}

(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]max) {max=a[i]; ________(2)________; } }

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 main ( )

, 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 main ( ) {

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)在线全文阅读。

《C语言程序设计》 复习大纲(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/607722.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: