1、c语言答案铜陵学院适用第一章 C语言概述一、简答题1(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。2顺序结构,分支结构,循环结构3所谓算法就是为解决一个问题而采取的方法和步骤。 算法的特性:有穷性、确定性、输入、输出、可行性。 表示算法的方式:(1)用自然语言
2、表示;(2)用流程图表示;(3)用NS流程图表示;(4)用伪代码表示;(5)用计算机语言表示。二、算法1 瓶子A里盛有醋 瓶子B里盛有酱油 有一个空瓶C 将A中的醋倒入C 将B中的酱油倒入A 将C中的醋倒入B2 输入一个数放在a中 max = a以下步骤重复9次:输入一个数放在a中如果amax,max=a打印max的值3 如果 aa temp = a a=c c=temp 否则 如果 cb temp=b b=c c=temp 打印a,b,c的值 4 i=1sum=0 以下程序循环100遍: sum=sum+i i=i+1 打印sum的值5 如果(n除以3的余数为0 并且 n除以5的余数为0)n
3、能够同时被3和5整除 否则 n不能够同时被3和5整除6 i=101以下语句循环50遍: j=2 flag=1 当j(i除以2的整数部分)时循环以下语句: 如果i除以j的余数为零 flag=0 退出该循环 如果flag=1 打印i的值 i=i+27 如果m=10000&a=1000&a=100&a=10&a=0&a=9)printf(“这是个一位数”);else printf(“输入错误”);3.main()int a;int g,s,b;/个位、十位、百位printf(水仙花数有:n);for(a=100;i=999;a+)g=a%10;s=a/10%10;b=a/100;if (a=g*g*
4、g+s*s*s+b*b*b) printf(%d ,a); printf(n);4、main()int i,n;printf(input n:);scanf(%d,&n);printf(n%d=,n);for(i=2;ia&cA&c0&c9) y+;else z+;printf(“英文字母个数:%dn”,w);printf(“空格个数:%dn”,x);printf(“数字个数:%dn”,y);printf(“其他字母个数:%dn”,z);6、main()float h=100,t=100;int j;for(j=1;j10;j+) t=t/2;h=h+t*2;printf(“共经过:%f 米n
5、”,h);printf(“第十次反弹 %f 米n”,t/2);第五章 数 组一、单项选择题1. B 2. A 3. C 4. C 5. D 6. B 7.C 8.B 9.C 10. B二、写出下列程序的运行结果1S=3682* * * *3S1=18 S2=104!margorP5数字0的出现次数是:3数字1的出现次数是:2数字2的出现次数是:2数字3的出现次数是:2数字4的出现次数是:0数字5的出现次数是:1数字6的出现次数是:1数字7的出现次数是:1数字8的出现次数是:1数字9的出现次数是:1三、编程题1#include stdio.hmain()int a11; int i,j,t; p
6、rintf(input 10 number:n); for (i=1;i11;i+) scanf(%d,&ai); printf(n); for (i=1;i=9;i+) for (j=1;j=10-i;j+) if (ajaj+1) t=aj;aj=aj+1;aj+1=t; printf(the sorted number is:n); for (i=1;i11;i+) printf(%4d,ai); 2#include stdio.hmain()int a11,i,b; printf(imput 10 sorted number:n); for (i=0;i=0&aib;i-) ai+1=
7、ai; ai+1=b; printf(sorted numbers:n); for (i=0;i11;i+) printf(%5d,ai); 3#include stdio.hmain()int a5,i,j,t; printf(input 5 integer:n); for (i=0;i5;i+) /*输入5个整数*/ scanf(%d,&ai); for (i=0,j=4;ij;i+,j-) /*逆序存放*/ t=ai;ai=aj;aj=t; for (i=0;i5;i+) /*逆序存放后重新输出*/ printf(%5d,ai); 4#include stdio.hmain()int i
8、,j,a1010=1,1,1; for (i=2;i10;i+) /*给二维数组每个元素赋值*/ ai0=1; for (j=1;j=i;j+) aij=ai-1j-1+ai-1j; for (i=0;i10;i+) /*输出二维数组*/ for (j=0;j=i;j+) printf(%-5d,aij); printf(n); 5#include stdio.hmain()int a34,i,j,max,row,col; printf(input 3*4 matrix:n); for (i=0;i3;i+) /*输入3*4矩阵*/ for (j=0;j4;j+) scanf(%d,&aij)
9、; max=a00; row=0; col=0; for (i=0;i3;i+) /*寻找矩阵中的最大值及其行列号*/ for (j=0;j4;j+) if (maxaij) max=aij; row=i, col=j; printf(n数组中最大的数是%d,其行号是%d,列号是%dn,max,row,col); 6#define N 3#define M 4#include stdio.hmain()int aNM,i,j,k,max,row,col; printf(input %d*%d matrix: n,N,M); for (i=0;iN;i+) /*输入二维矩阵*/ for (j=0
10、;jM;j+) scanf(%d,&aij); for (i=0;iN;i+) /*求鞍点*/ max=ai0; row=i; col=0; for(j=1;jM;j+) /*求矩阵中每一行的最大值及其所行列号*/ if (maxaij) max=aij; col=j; for (k=0;kN;k+) /*判断每一行的最大值在其所在列是否最大*/ if (akcolmax) break; if (k=N) /*得到鞍点*/ printf(the point is %d,row=%d,col=%dn,max,row,col);break; if (i=N) /*没有鞍点*/ printf(no
11、pointn);7#include stdio.hmain()int num=0,word=0; /*word=0表示未出现单词,如出现单词就置word为1.num用来统计单词个数*/ char c; printf(please input a string :n); while (c=getchar()!=n) if (c= ) word=0; else if (word=0) word=1; num+; printf(There are %d words in the linen,num); 8#include stdio.hmain()int i,j,uppn,lown,dign,spa
12、n,othn; /*uppn,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其他字符的个数*/ char text380; uppn=lown=dign=span=othn=0; for(i=0;i3;i+) gets(texti); for(j=0;j=A&textij=a&textij=0&textij=9) dign+; else if(textij= ) span+; else othn+; for(i=0;i3;i+) printf(%sn,texti); printf(uppn=%dn,uppn); printf(lown=%dn,lown);
13、printf(dign=%dn,dign); printf(span=%dn,span); printf(othn=%dn,othn);9#include stdio.hmain()int i,j; char str120,str220; printf(input two strings:n); gets(str1); gets(str2); j=strlen(str1); /*求字符串1的长度*/ for (i=0;str2i!=0;i+,j+) /*字符串合并*/ str1j=str2i; str1j=0; /*加上字符串结束标志*/ puts(str1); 10#include stdi
14、o.hmain()int i,n; char str120,str220; printf(input two strings:(no more than 20 characters)n); gets(str1); gets(str2); n=strlen(str1)strlen(str2)?strlen(str1):strlen(str2); /*n中存放较短字符串的长度*/ for (i=0;i0):n); scanf(%d,&n); if (prime(n) printf(%d is a sushun,n); else printf(%d is not a sushun,n);int pr
15、ime(int n) int flag=1,i; for (i=2;i=n/2&flag=1;i+) if (n%i=0) flag=0; return(flag); 2.#define N 3convert(int array33) int i,j,t; for (i=0;iN-1;i+) for (j=i+1;jN;j+) t=arrayij; arrayij=arrayji; arrayji=t; main()int i,j; int aNN; printf(input a:n); for (i=0;iN;i+) for (j=0;jN;j+) scanf(%d,&aij); print
16、f(Array a:n); for (i=0;iN;i+) for (j=0;jN;j+) printf(%5d,aij); printf(n); convert(a); printf(a de zhuanzhi is:n); for (i=0;iN;i+) for (j=0;jN;j+) printf(%5d,aij); printf(n); 3. #include #include main() char str100; printf(input a string:n) ; gets(str); inverse(str); printf(the reversed string is:%sn
17、,str); inverse(char str) char t; int i,j; for (i=0,j=strlen(str)-1;ij;i+,j-) t=stri; stri=strj; strj=t; 4. #include concat(char str1,char str2) int i=0,j; while (str1i!=0) i+; for (j=0;str2j!=0;i+,j+) str1i=str2j; str1i=0;main() char str1100,str2100; gets(str1);gets(str2); concat(str1,str2); puts(st
18、r1);5. main() char str80; printf(input a string (4 ge shu zi zi fu):n); scanf(%s,str); insert(str); printf(result is:n%sn,str); insert(char str) int i; for (i=strlen(str);i0;i-) str2*i=stri; str2*i-1= ; 6. #include stdio.hint i,ndight,nwhite,nletter,nother;count(char str) ndight=nwhite=nletter=nothe
19、r=0; for (i=0;stri!=0;i+) if (stri=0&stri=A&stri=a&stri=z) nletter+; else if (stri= ) nwhite+; else nother+; main() char text80; printf(input a string:n); gets(text); count(text);printf(ndight=%d,nletter=%d,nwhite=%d,nother=%dn,ndight,nletter,nwhite,nother);7. #define N 10#include sort(char str)int i,j; char t;for (i=1;iN;i+) for (j=0;jN-i;j+) if (strj
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1