C语言 113道题
第1题:编写函数求1~100中奇数的平方和。
结果为166650.000000。
float s=0;
int i;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
第2题:在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
int sum;
int i,j;
sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
return sum;
第3题:能计算从1开始到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。(n是偶数)
int sum,i;
sum =0;
for(i=2;i<=n;i=i+2)
{
sum=sum+i*i;}
return(sum);
第4题:将两个两位数的正整数a、b合并形成一个整数放在c
中。合并的方式是:将a数的十位和个位数依次放在
c数的千位和十位上, b数的十位和个位数依次放在
c数的个位和百位上。
例如:当a=45,b=12。调用该函数后,
c=4251。
*c=a/10*1000+a%10*10+b/10+b%10*100; 第5题:求一组数中大于平均值的数的个数。
例如:给定的一组数为
1,3,6,9,4,23,35,67,12,88时,函
数值为3。
int i,k=0;
float s=0,ave;
for(i=0;i s+=a[i]; ave=s/n; printf("%f ",ave); for(i=0;i if(a[i]>ave)k++; return k; 第6题:对长度为8个字符的字符串,将8个字符按降序排列。 例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。 int i,j; char t; for(i=0;i for(j=i+1;j if(s[i] { t=s[i];s[i]=s[j];s[j]=t;} 第7题:求出二维数组周边元素之和,作为函数值返回。二 维数组的值在主函数中赋予。 int s=0; int i,j; for(i=0;i s=s+a[i][0]+a[i][N-1]; for(j=1;j s=s+a[0][j]+a[M-1][j]; return s; 第8题(10.0分)题号:339 功能:判断整数x是否是同构数。若是同 构数,函数返回1; 否则返回0。x的值由主函数从键盘 读入,要求不大 于100。 说明:所谓“同构数”是指这样的数,这 个数出现在它的 平方数的右边。 例如:输入整数5,5的平方数是25,5是 25中右侧的数,所 以5是同构数。 int k; k=x*x; if((k%10==x)||(k%100==x)) return 1; else return 0; int i; for(i=0;str1[i]!='\0';i++) str2[i]=str1[i]; str2[i]='\0'; 第10题(10.0分)题号:310 功能:计算并输出给定整数n的所有因子 之和(不包括1与 自身)。 注意:n的值不大于1000。 例如:n的值为855时,应输出704。 int s=0,i; for(i=2;i if(n%i==0)s=s+i; return s; 第11题(10.0分)题号:354 功能:求小于lim的所有素数并放在aa数 组中,该函数返回 所求出素数的个数。 int n=0; int i,j; for(i=2;i<=lim;i++) {for(j=2;j if(i%j==0) break; if(j==i) aa[n++]=i; } return n; 第12题(10.0分)题号:341 功能:删除所有值为y的元素。数组元素 中的值和y的值由 主函数通过键盘输入。 int i,j; for(i=0;i<*n;) { if(bb[i]==y) {for(j=i;j<*n;j++) bb[j]=bb[j+1]; *n=*n-1; } else i++; } 第13题(10.0分)题号:317 功能:求出N×M整型数组的最大元素及其 所在的行坐标及 列坐标(如果最大元素不唯一,选 择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 1 5 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列 坐标为1。 int max,i,j; max=array [0][0]; Row=0; Col=0; for(i=0;i {for(j=0;j if(max {max=array [i][j]; Row=i; Col=j;} } return(max); 第14题(10.0分)题号:392 功能:求一批数中最大值和最小值的积。 int i,max,min; max=min=a[0]; for(i=1;i if(a[i]>max) max=a[i]; else if(a[i] return(max*min); 第15题(10.0分)题号:501 题目:从键盘输入一个大写字母,要求改 用小写字母输出。 答案: c=c+32; return c; 第16题(10.0分)题号:502 题目:用while语句求1~100的累计和。 答案: int i=1,sum=0; while(i<=n) { sum=sum+i; i++; } return sum; 第17题(10.0分)题号:409 题目:输入华氏温度求摄氏温度。转换公 式为 c=5/9(f-32), 输出结果取两位小数。 答案: float n; n=(5.0/9.0)*(m-32); return n; 第18题(10.0分)题号:29 功能:对任意输入的 x,用下式计算并输 出 y 的值。 5 x<10 y= 0 x=10 -5 x>10 答案: int m; if(n<10) m=5; else if(n==10) m=0; else m=-5; return m; 或 int m; if(n>=10) if(n>10) m=-5; else m=0; else m=5; return m; 第19题(10.0分)题号:382 功能:给定n个数据, 求最小值出现的位 置(如果最小值 出现多次,求出第一次出现的位置 即可)。 int i,k; k=0; for(i=1;i if(s[i] return(k); 第20题(10.0分)题号:367 功能:找出一批正整数中的最大的偶数。 int i,amax=-1; for(i=0;i if(a[i]%2==0) if (a[i]>amax) amax=a[i]; return amax; 第21题(10.0分)题号:384 功能:产生20个[30,120]上的随机整数放 入二维数组a[5][4] 中,求每行元素的和。 int i,j; for(i=0;i<5;i++) { b[i]=0; for(j=0;j<4;j++) b[i]=b[i]+a[i][j]; } 第22题(10.0分)题号:334 功能:求给定正整数n以内的素数之积。(n<28) long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k if(i%k==0)break; if(k==i)s=s*i; } return s; 第23题(10.0分)题号:363 功能:求一个给定字符串中的字母的个数。int i,k=0; for(i=0;s[i]!='\0';i++) if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&& s[i]<='Z') k++; return k; 第24题(10.0分)题号:361 功能:编写程序, 求矩阵(3行3列)与2的乘积 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 200 400 600 800 1000 1200 1400 1600 1800 int i,j; for(i=0; i < 3; i++) for(j=0; j < 3; j++) array[i][j]=array[i][j]*2; 第25题(10.0分)题号:400 功能:编写main程序调用函数fact求解从m个元素选n个元 素的组合数的个数。计算公式是: 组合数=m!/(n!.(m-n)!)。要求:m 不能小于n,否则 应有容错处理。 说明:函数fact(x)的功能是求x!。 while(m { printf("m和n输入错!请重新输 入:\n"); scanf("%d%d",&m,&n); } zhsgs=fact(m)/(fact(n)*fact(m-n)); 第26题(10.0分)题号:411 功能:对任意输入的 x,用下式计算并输出 y 的值。 -1 x<0 y= 0 x=0 1 x>0 答案: int m; if(n<0) m=-1; else if(n==0) m=0; else m=1; return m; 或 int m; if(n>=0) if(n>0) m=1; else m=0; else m=-1; return m; 第27题(10.0分)题号:509 功能:编写函数fun其功能是:根据整型形参m,计算如下 公式的值:y=1+1/3+1/5+1/7 +…+1/(2m+1) 例如:若m=9,则应输出:2.133256 double y=1; int i; for(i=1; i<=m; i++) {y+=1.0/(2*i+1); } return(y); 第28题(10.0分)题号:394 功能:产生20个[30,120]上的随机整数放 入二维数组 a[5][4]中, 求其中的最小值。 int i,j,s; s=a[0][0]; for(i=0;i<5;i++) for(j=0;j<4;j++) if(s>a[i][j])s=a[i][j]; return(s); 第29题(10.0分)题号:330 功能:计算出k以内最大的10个能被13 或17整除的自然数之 和。(k〈3000)。 int a=0,b=0; while((k>=2)&&(b<10)) {if((k%13==0)||(k%17==0)) {a=a+k;b++;} k--; } return a; 第30题(10.0分)题号:364 功能:求一个四位数的各位数字的立方和。 int d,s=0; while (n>0) {d=n%10; s+=d*d*d; n/=10; } return s; 第31题(10.0分)题号:348 功能:从低位开始取出长整型变量s中偶 数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的 数为:642。 答案: ---------------------- long sl=10; s /= 10; t = s % 10; while(s > 0) { s = s/100; t = s%10*sl + t; sl = sl * 10; } ---------------------- 第32题(10.0分)题号:313 功能:从键盘为一维整型数组输入10个整 数,调用fun函数 找出其中最小的数,并在main函数 中输出。 答案: ---------------------- int min,i; min=x[0]; for(i=1;i {if(x[i] return min; ---------------------- 第33题(10.0分)题号:391 功能:将字符串中的小写字母转换为对应 的大写字母, 其它字符不变。 答案: ---------------------- int i; for(i=0;str[i]!='\0';i++) if(str[i]>='a' && str[i]<='z') str[i]=str[i]-32; ---------------------- 第34题(10.0分)题号:397 功能:编写函数fun(str,i,n),从字符串 str中删除第i个 字符开始的连续n个字符(注 意:str[0]代表字符串 的第一个字符)。 答案: ---------------------- while(str[i+n-1]) { str[i-1]=str[i+n-1]; i++; } str[i-1]='\0'; ---------------------- 第35题(10.0分)题号:325 功能:在键盘上输入一个3行3列矩阵的 各个元素的值(值 为整数),然后输出主对角线元素的 平方和,并在 fun()函数中输出。 答案:---------------------- int sum; int i; sum=0; for(i=0;i<3;i++) sum=sum+a[i][i]*a[i][i]; return sum; ---------------------- 第36题(10.0分)题号:388 功能:编写函数判断一个整数能否同时被3 和5整除,若能 则返回值为1,否则为0。调用该函 数求出15~300之 间能同时被3和5整除的数的个数。 答案: ---------------------- if(n%3==0&&n%5==0) return(1); return(0); ---------------------- 第37题(10.0分)题号:399 功能:编写程序求无理数e的值并输出。 计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 答案: ---------------------- long int j; int i,k; double e,jc; i=1; e=0.0; jc=1.0; while(jc>=0.000001) { e=e+jc; j=1; for(k=1;k<=i;k++) j=j*k; jc=1.0/j; i++; } return e; ---------------------- 第38题(10.0分)题号:312 功能:调用函数fun判断一个三位数是否" 水仙花数"。 在main函数中从键盘输入一个三位 数,并输 出判断结果。请编写fun函数。 说明:所谓"水仙花数"是指一3位数,其 各位数字立方和 等于该数本身。 例如:153是一个水仙花数,因为 153=1+125+27。 答案: ---------------------- int bw,sw,gw; bw=n/100;sw=(n-bw*100)/10;gw=n%10; if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1; else return 0; ---------------------- 第39题(10.0分)题号:335 功能:求一个n位自然数的各位数字的积。(n 是小于10的 自然数) 答案: ---------------------- long d,s=1; while (n>0) {d=n%10; s*=d; n/=10; } return s; ---------------------- 第40题(10.0分)题号:379 功能:给定n个数据, 求最大值出现的位置(如果最大值出 现多次,求出第一次出现的位置即可)。 答案: ---------------------- int i,k; k=0; for(i=1;i<=n;i++) if(s[i]>s[k]) k=i; return(k+1); ---------------------- 第41题(10.0分)题号:22 功能:从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main 函数中输出。 请编写fun函数。 答案: ---------------------- int min,i; min=x[0]; for(i=1;i {if(x[i] return min; ---------------------- 第42题(10.0分)题号:381 功能:求一批数中小于平均值的数的个数。答案: ---------------------- int i,sum=0,k=0; double average; for(i=0;i sum=sum+a[i]; average=sum*1.0/n; for(i=0;i if(average>a[i]) k++; return(k); ---------------------- 第43题(10.0分)题号:352 功能:根据整型形参m,计算如下公式的值:y=1/2+1/4+ 1/6+...+1/2m 。 例如:若m=9,则应输出:1.414484 答案: ---------------------- double y=0; int i; for(i=1; i<=m; i++) {y+=1.0/(2*i); } return(y); ---------------------- 第44题(10.0分)题号:33 功能:用do-while语句求1~100的累计和。 答案: int i =1, sum =0; do { sum = sum + i; i++; } while ( i <= n ); return sum; 第45题(10.0分)题号:347 功能:把20个随机数存入一个数组,然后 输出该数组中的 最小值。其中确定最小值的下标的 操作在fun函数中 实现,请给出该函数的定义。 答案: ---------------------- int i,min=0; for(i=1; i if(list[min]>list[i]) min=i; return min; ---------------------- 第46题(10.0分)题号:343 功能:将两个两位数的正整数a、b合并形 成一个整数放在c 中。合并的方式是:将a数的十位 和个位数依次放 在c数的个位和百位上, b数的十位 和个位数依次放 在c数的十位和千位上。 例如:当a=45,b=12,调用该函数后, c=2514。 答案:---------------------- *c=a/10+a%10*100+b/10*10+b%10*1000; 第47题(10.0分)题号:504 功能:编写程序打印如图1所示图形。 * *** ***** ******* ***** *** * 要求:要求使用abs()。 答案: for(m=-i;m<=i;m++) { for(n=0;n "); for(n=0;n<7-2*abs(m);n++) printf("*"); printf("\n"); } 第48题(10.0分)题号:365 功能:求1到100之间的偶数之积。 答案: ---------------------- double y=1; int i; for(i=1;i<=m;i++) if(i%2==0)y*=i; return y; ---------------------- 第49题(10.0分)题号:410 功能:编写函数fun将一个数组中的值按 逆序存放,并在 main()函数中输出。 例如:原来存顺序为8,6,5,4,1。要求改为: 1,4,5,6,8。 答案: ---------------------- int i,t; for(i=0;i { t=arr[i]; arr[i]=arr[n-1-i]; arr[n-1-i]=t; } ---------------------- 第50题(10.0分)题号:373 功能:用函数求fibonacci数列前n项的 和。 说明:fibonacci数列为数列的第一项值为 1,第二项值也 为1,从第三项开始,每一项均为其 前面相邻两项 的和。 例如:当n=28时,运行结果:832039 答案: ---------------------- long f,k=f1+f2; int i; for(i=3;i<=28;i++) {f=f1+f2; k=k+f; f1=f2; f2=f; } return(k); ---------------------- 第51题(10.0分)题号:378 功能:编写函数用冒泡排序法对数组中的 数据进行从小到 大的排序。 答案: ---------------------- int i,j,t; for(i=0;i for(j=0;j if(a[j]>a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t; } ---------------------- 第52题(10.0分)题号:323 功能:求1到w之间的奇数之和。(w是大 于等于100小于等 于1000的整数) 答案: ---------------------- long y=0; int i; for(i=1;i<=w;i++) if(i%2==1)y+=i; return y; ---------------------- 第53题(10.0分)题号:380 功能:用辗转相除法求两个整数的最大公 约数。 答案: ---------------------- int r,t; if(n r=n%m; while(r!=0) { n=m;m=r;r=n%m;} return(m); ---------------------- 第54题(10.0分)题号:503 题目:分别统计字符串中字母、数字、空 格和其他字符出现的 次数(字符长度小于80)。 答案: int i; for(i=0;c[i]!='\0';i++) if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a '&&c[i]<='z')) a=a+1; else if (c[i]>='0'&&c[i]<='9') num=num+1; else if (c[i]==' ') b=b+1; else other=other+1; 第55题(10.0分)题号:395 功能:求n阶方阵主、副对角线上的元素 之积。 答案: ---------------------- int i,j; float t=1; for(i=0;i for(j=0;j if(i==j||i+j==N-1) t=t*arr[i][j]; return(t); ---------------------- 第56题(10.0分)题号:318 功能:输入一个字符串,过滤此串,只保留串中的字母字 符,并统计新生成串中包含的字母个数。 例如:输入的字符串为ab234$df4,新生成的串为abdf 。 答案: ---------------------- int i,j; for(i=0,j=0;*(ptr+i)!='\0';i++) if(*(ptr+i)<='z'&& *(ptr+i)>='a'||*(ptr+i)<='Z' && *(ptr+i)>='A') {*(ptr+j)=*(ptr+i); j++;} *(ptr+j)='\0'; return(j); ---------------------- 第57题(10.0分)题号:311 功能:计算n门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.600000。 答案: ---------------------- int i; float y=0; for(i=0;i y+=a[i]; y=y/n; return y; ---------------------- 第58题(10.0分)题号:358 功能:根据整型形参m,计算如下公式的值:y=sin(m)*10。 例如:若m=9,则应输出:4.121185 答案: ---------------------- double y=0; y=sin(m)*10; return(y); ---------------------- 第59题(10.0分)题号:23 功能:从键盘输入一个大于3的整数,调用函数fun判断 其是否素数,然后在main函数中输出相应的结论 信息。 例如:7是素数,8不是素数。请编写fun 函数。素数是 仅能被1和自身整除的数 答案:---------------------- int i; int j; j= 1; for(i=2;i {if(n%i==0) j= 0; } return j; ---------------------- 第60题(10.0分)题号:349 功能:从低位开始取出长整型变量s奇数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:7531。 答案: ---------------------- long sl=10; t = s % 10; while(s > 0) { s = s/100; t = s%10*sl + t; sl = sl * 10; } ---------------------- 第61题(10.0分)题号:332 功能:根据整型参数n,计算如图公式的值。 答案: ---------------------- double a=1;int i; for(i=1;i a=1.0/(1+a); return a; ---------------------- 第62题(10.0分)题号:327 功能:能计算从1开始到n的自然数的和, n由键盘输入, 并在main()函数中输出。 答案: ---------------------- int sum,i; sum =0; for(i=1;i<=n;i++) {sum=sum+i;} return(sum); ---------------------- 第63题(10.0分)题号:351 功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组, 求出二维数组每列 中最大元素,并依次放入pp所指一 维数组中。二维 数组中的数已在主函数中赋予。 答案: ---------------------- int i,j; for(j=0;j { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j]>pp[j]) pp[j]=tt[i][j]; } ---------------------- 第64题(10.0分)题号:389 功能:编写函数求表达式的和(n的值由主 函数输入)。 1-1/2+1/3-1/4+......+1/m 例如:当n=20时,表达式的值为0.668771。 答案: ---------------------- float s=0; int i,k=1; for(i=1;i<=n;i++) { s=s+k*1.0/i; k=-k; } return(s); ---------------------- 第65题(10.0分)题号:54 功能:求1到100之间的偶数之积。 答案: ---------------------- double y=1; int i; for(i=1;i<=m;i++) if(i%2==0)y*=i; return y; ---------------------- 第66题(10.0分)题号:353 功能:对长度为7个字符的字符串,除首、 尾字符外,将其 余5个字符按降序排列。 例如:原来的字符串为CEAedca,排序后输 出为CedcEAa。 答案: ---------------------- int i,j; char t; for(i=1;i for(j=i+1;j if(s[i] { t=s[i];s[i]=s[j];s[j]=t;} ---------------------- 第67题(10.0分)题号:328 功能:求k!(k〈13),所求阶乘的值作为 函数值返回。 (要求使用递归) 答案: ---------------------- if (k>0) return(k*fun(k-1)); else if(k==0) return 1L; ---------------------- 第68题(10.0分)题号:346 功能:将从键盘上输入的每个单词的第一 个字母转换为 大写字母,输入时各单词必须用空 格隔开,用’.’ 结束输入。 答案: ---------------------- if (*c== ' ') return 1; else { if(status && *c <= 'z' && *c >= 'a') *c += 'A' - 'a'; return 0; } ---------------------- 第69题(10.0分)题号:403 答案: ---------------------- long int x=1; int i; for(i=1;i<=n;i++) x=x*m; return x; ---------------------- 第70题(10.0分)题号:387 功能:求一批数中最大值和最小值的差。 答案: ---------------------- int i,max,min; max=min=a[0]; for(i=1;i if(a[i]>max) max=a[i]; else if(a[i] return(max-min); ---------------------- 第71题(10.0分)题号:336 功能:从字符串中删除指定的字符。同一 字母的大、小写 按不同字符处理。 例如:若程序执行时输入字符串为: turbocandborlandc++ 从键盘上输入字符:n,则输出后变 为:turbocadbo rladc++,如果输入的字符在字符串 中不存在,则字 符串照原样输出。 答案: ---------------------- char *q=s; for(; *q; q++) if(*q != c) *(s++)=*q; *s=0; ---------------------- 第72题(10.0分)题号:338 功能:编写程序,实现矩阵(3行3列)的 转置(即行列互换) 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 答案: ---------------------- int i,j,t; for(i=0; i < 3; i++) for(j=0; j < i; j++) { t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } ---------------------- 第73题(10.0分)题号:42 功能:从字符串s中删除指定的字符c。答案: ---------------------- int i,k=0; for(i=0;s[i]!='\0';i++) if(s[i]!=c) s[k++]=s[i]; s[k]='\0'; ---------------------- 第74题(10.0分)题号:342 功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。 答案: ---------------------- int sum; int i,j; sum=0; for(i=0;i<3;i+=2) for(j=0;j<3;j++) sum=sum+a[i][j]; return sum; ---------------------- 第75题(10.0分)题号:359 功能:实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为:a=65 b=60 答案: ---------------------- int t; t=*a;*a=*b;*b=t; ---------------------- 第76题(10.0分)题号:374 功能:编写函数实现两个数据的交换,在主函数中输入任 意三个数据,调用函数对这三个数据从大到小排序。 答案: ---------------------- int k; k=*a; *a=*b; *b=k; ---------------------- 第77题(10.0分)题号:356 功能:求大于lim(lim小于100的整数)并且小于100的所 有素数并放在aa数组中,该函数返回所求出素数的 个数。 答案: ---------------------- int n=0; int i,j; for(i=lim;i<=100;i++) {for(j=2;j if(i%j==0) break; if(j==i) aa[n++]=i; } return n; ---------------------- 第78题(10.0分)题号:53 功能:求一个四位数的各位数字的立方和答案: ---------------------- int d,k,s=0; while (n>0) {d=n%10; s+=d*d*d; n/=10; } return s; ---------------------- 第79题(10.0分)题号:322 功能:判断一个整数w的各位数字平方之 和能否被5整除, 可以被5整除则返回1,否则返回0。 答案: ---------------------- int k,s=0; do {s=s+(w%10)*(w%10); w=w/10; }while(w!=0); if(s%5==0)k=1; else k=0; return(k); ---------------------- 第80题(10.0分)题号:326 功能:求一个大于10的n位整数的后n-1 位的数,并作为函 数值返回。 答案: ---------------------- int n=0;int i=1; while(w>10) {n=n+i*(w%10); w/=10; i*=10;} return n; ---------------------- 第81题(10.0分)题号:321 功能:编写函数fun其功能是:根据整型 形参m,计算如下 公式的值:y=1/2!+1/4!+…+1/m!(m 是偶数) 答案:double y=0.0; int i,j; double s=1; for (i=2;i<=m;i+=2) { for(j=i-1;j<=i;j++) s=s*j; y=y+1.0/s; } return y; 第82题(10.0分)题号:337 功能:将两个两位数的正整数a、b合并形 成一个整数放在 c中。合并的方式是:将a数的十位 和个位数依次放 在c数的百位和个位上, b数的十 位和个位数依次放 在c数的十位和千位上。 例如:当a=45,b=12。调用该函数后, c=2415。 答案: ---------------------- *c=a/10*100+a%10+b/10*10+b%10*1000; ---------------------- 第83题(10.0分)题号:396 功能:编写函数fun对主程序中用户输入 的具有10 个数据的数组a按由大到小排序, 并在主程序中输出 排序结果。 答案: ---------------------- int k,j,t; for (k=0;k for (j=k+1;j if (array[k] { t=array[k]; array[k]=array[j]; array[j]=t; } ---------------------- 第84题(10.0分)题号:407 功能:编写函数fun求 sum=d+dd+ddd+……+dd...d(n个d), 其中d为1-9的数字。 例如:3+33+333+3333+33333(此时 d=3,n=5),d和n在主函 数中输入。 答案: ---------------------- long int s=0,t=0; int i; for(i=1;i<=n;i++) { t=t+d; s=s+t; d=d*10; } return s; ---------------------- 第85题(10.0分)题号:50 功能:求出菲波那契数列的前一项与后一 项之比的极限的 近似值。 例如:当误差为0.0001时,函数值为 0.618056。 答案: ---------------------- float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; ---------------------- 第86题(10.0分)题号:372 题目:用函数求一个N阶方阵右下三角元 素的和(包括副 对角线上的元素)。 答案:---------------------- int i,j,k=0; for(i=0;i for(j=N-1-i;j k=k+a[i][j]; return(k); ---------------------- 第87题(10.0分)题号:401 功能:若x、y为奇数,求x到y之间的奇 数和;若x、y为偶 数,则求x到y之间的偶数和。 答案:- --------------------- int i,s=0; for(i=x;i<=y;i+=2) s=s+i; return s; ---------------------- 第88题(10.0分)题号:398 功能:编写函数fun求s=1^k+2^k +3^k + ......+N^k的值, (1的K次方到N的K次方的累加 和)。 答案: ---------------------- long power,sum=0; int i,j; for(i=1;i<=n;i++) { power=i; for(j=1;j ---------------------- 第99题 (10.0分) 题号:368 功能:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13… 的前n 项之和。 说明:每一分数的分母是前两项的分母之和,每一分数的 分子是前两项的分子之和 例如:求前20项之和的值为32.660259。 答案: ---------------------- int i; float f1=1,f2=1,f3,s=0; for(i=1;i<=n;i++) {f3=f1+f2; f1=f2; f2=f3; s=s+f2/f1; } return s; ---------------------- 第100题 (10.0分) 题号:316 功能:统计出若干个学生的平均成绩,最高分以及得最高 分的人数。 例如:输入10名学生的成绩分别为92,87,68,56,92, 84,67,75,92,66,则输出平均成绩为77.9, 最高分为92,得最高分的人数为3人。 答案: ---------------------- int i;float sum=0,ave; Max=array[0]; for(i=0;i { if(Max for(i=0;i ---------------------- 第101题 (10.0分) 题号:331 功能:找出一个大于给定整数且紧随这个整数的素数,并 作为函数值返回。 答案: ---------------------- int i,k; for(i=n+1;;i++){ for(k=2;k ---------------------- 第102题 (10.0分) 题号:362 功能:求给定正整数m 以内的素数之和。 例如:当m=20时,函数值为77。 答案: ---------------------- int i,k,s=0; for(i=2;i<=m;i++) {for(k=2;k ---------------------- 第103题 (10.0分) 题号:360 功能:把20个随机数存入一个数组,然后 输出该数组中的 最大值。 答案: ---------------------- int i,max=0; for(i=1; i if(list[max] max=i; return max; ---------------------- 第104题(10.0分)题号:37 功能:输入2个学生3门课的成绩,计算学生成绩平均分, 课程平均分和最高分. 例如:输入2名学生3门课的成绩分别为92,87,68,56, 92,84 则 学生1平均分:82.33 学生2平均分:77.33 课程1平均分:74.00 课程2平均分:89.50 课程3平均分:76.00 最高分为:92 答案:int i,j; float sum; for(i=0;i<2;i++) /*计算第i个学生平均分*/ { sum=0; for(j=0;j<3;j++) sum=sum+score[i][j]; StuAgv[i]=sum/3; } for(j=0;j<3;j++) /* 计算第j门课的平均分*/ { sum=0; for(i=0;i<2;i++) sum=sum+ score [i][j]; CouAgv[j]=sum/2; } Max=score[0][0]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(Max<=score[i][j]) { Max=score[i][j]; } return ; 第105题(10.0分)题号:369 功能:编写函数判断一个整数m的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 答案: ---------------------- int k,s=0; do {s=s+m%10; m=m/10; }while(m!=0); if(s%7==0)k=1; else k=0; return(k); ---------------------- 第106题(10.0分)题号:405 功能:编写函数fun计算下列分段函数的值: x^2+x+6 x<0且x≠-3 f(x)= x^2-5x+6 0≤x<10且 x≠2及x≠3 x^2-x-1 其它 答案: ---------------------- float y; if (x<0 && x!=-3.0) y=x*x+x+6; else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=x*x-5*x+6; else y=x*x-x-1; return y; ---------------------- 第107题(10.0分)题号:393 功能:编写函数求 3!+6!+9!+12!+15+18!+21!。 答案: ---------------------- int i,j; float t,s=0; for(i=3;i<=n;i=i+3) {t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} return(s); ---------------------- 第108题(10.0分)题号:350 功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组, 求出二维数组每列 中最小元素,并依次放入pp所指一 维数组中。二维 数组中的数已在主函数中赋予。 答案: ---------------------- int i,j; for(j=0;j { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j] pp[j]=tt[i][j]; } ---------------------- 第109题(10.0分)题号:376 功能:从键盘上输入任意实数x,求出其所 对应的函数值。 z=(x-4)的二次幂(x>4) z=x的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 答案: ---------------------- float z; if(x>4) z=sqrt(x-4); else if(x>-4) z=pow(x,8); else if(x>-10) z=4/(x*(x+1)); else z=fabs(x)+20; return(z); ---------------------- 第110题(10.0分)题号:386 功能:用函数求N个[10,60]上的整数中能 被5整除的最大 的数,如存在则返回这个最大值, 如果不存在则 返回0。 答案: ---------------------- int i; for(i=0;i if(arr[i]%5==0 && arr[i]>m) m=arr[i]; ---------------------- 第111题(10.0分)题号:340 功能:编写一个函数,该函数可以统计一 个长度为2的字符 串在另一个字符串中出现的次数。 例如:假定输入的字符串为: asdasasdfgasdaszx67asdmklo, 字符串为:as,则应输出6。 答案:---------------------- int i,n=0; for(i=0;i<=strlen(str)-2;i++) if((str[i]==substr[0])&&(str[i+1]==s ubstr[1])) n++; return n; ---------------------- 第112题(10.0分)题号:507 功能:编写函数fun求一个字符串的长度, 在main函数中 输入字符串,并输出其长度。 答案: ---------------------- char *p; int n=0; p=p1; while(*p++) n++; return n; ---------------------- 第113题(10.0分)题号:16 功能:编写函数fun求1!+2!+3!+ …… +n! 的和,在main函 数中由键盘输入n值,并输出运算 结果。请编写fun 函数。 例如:若n值为5,则结果为153。 答案: ---------------------- int i; float f=1,s=0; for(i=1;i<=n;i++) {f=f*i; s=s+f;} return s; ---------------------- 《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。 C语言题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式 ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0; C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行 C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H- C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes? 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由 主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998 第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C) 一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。 C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。 2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】 第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 C语言理论上机考试选择题部分(共200题,仅针对11级定向专业) 1、下面程序的输出是___D______ #include<> void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是________D____. A) true B) 非零值 C) 0 D) 1 5、C语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 7、C语言程序的基本单位是_____C______.A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include<> void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include<> void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include<> void main() {int x=10,y=3; printf("%d\n",y=x/y); } 一、单项选择题:(10分,每题2分) 1.char *p[10];该语句声明了一个: c 。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: D 。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A) ##3B) **3C) **3D)##3**4 **4 ##4 ##4**5 ##5 ##5 **5 3.在while(!x)语句中的!x与下面条件表达式等价的是:D 。 A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知 struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; }; struct rect rt; struct rect *rp = &rt; 则下面哪一种引用是不正确的__D______。 A) r t.pt1.x B) (*rp).pt1.x C) r p->pt1.x D) rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。 A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1. #include 2020最新C语言题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.ageC语言试卷及答案
C语言题库及答案
c语言试题及答案
大学c语言考试题库含答案
(完整版)C语言试题及答案解析
C语言考试题库及答案复习整理
C语言全部题目及答案
c语言试题及答案 ()
C语言程序设计程序填空题库及答案
C语言函数题库及答案
C语言试题及答案
C语言期末考试题含答案
2019二级C语言题库参考答案解析
C语言试题及答案
大学C语言考试题库及答案
C语言试题及答案
历年C语言考试题库及答案
C语言考试题及答案
2020最新C语言题库及答案