齐齐哈尔大学C语言题库 程序改错(部分)
更新时间:2024-01-30 21:39:01 阅读量: 教育文库 文档下载
- 齐齐哈尔大学期末考试题库推荐度:
- 相关推荐
1.【程序改错】
题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 #define N 10
/**********FOUND**********/
float fun(int *a,int *b,int n) int fun(int *a,int *b,int n) { int *c,max=*a;
for(c=a+1;cmax)
{ max=*c;
/**********FOUND**********/ b=c-a;} *b=c-a;} return max; } main()
{ int a[N],i,max,p=0;
printf(\ for(i=0;i /**********FOUND**********/ get(\ scanf(\ /**********FOUND**********/ m=fun(a,p,N); max=fun(a,p,N); printf(\ 29.【程序改错】 题目:fun函数的功能是:实现两个字符串的连接。 例如:输入dfdfqe和12345时,则输出dfdfqe12345. 请改正程序中的错误,使它能得出正确的结果。 #include\main() { char s1[80],s2[80]; void scat(char s1[],char s2[]); gets(s1); gets(s2); scat(s1,s2); puts(s1); } void scat (char s1[],char s2[]) { int i=0,j=0; /**********FOUND**********/ while(s1[i]= ='\\0') i++; while(s1[i]!='\\0')i++; /**********FOUND**********/ while(s2[j]= ='\\0') while(s2[i]!='\\0') {/**********FOUND**********/ s2[j]=s1[i]; s1[i]=s2[j]; i++; j++; } /**********FOUND**********/ s2[j]='\\0'; s1[i]='\\0'; } 414.【程序改错】 题目:输入一行字符,分别统计出其中英文字母、空 格、数字和其它字符的个数。 #include \main() {char c; int letters=0,space=0,digit=0,others=0; printf(\/**********FOUND**********/ while((c=getchar())=='\\n') while((c=getchar())!='\\n') {/**********FOUND**********/ if(c>='a'&&c<='z'&&c>='A'&&c<='Z') if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; /**********FOUND**********/ else if(c=!' ') else if(c==' ') space++; else if(c>='0'&&c<='9') digit++; else others++;} printf(\ space,digit,others); } 364.【程序改错】 题目:给定程序MODI1.C中函数 fun 的功能是:计算正整数num的 各位上的数字之积。例如,若输入:252,则输出应该是:20。若 输入:202,则输出应该是:0。 #include /**********FOUND**********/ {long k=1 {lon k=1; do { k*=num ; /**********FOUND**********/ num\\=10; num/=10; /**********FOUND**********/ } while(!num) ; } while(num); return (k) ; } main( ) { long n ; clrscr() ; printf(\printf(\getch();} 433.【程序改错】 题目:编写一个函数,输入n为偶数时,调用函数求 1/2+1/4+...+1/n,当输入n为奇数时,调用函 数1/1+1/3+...+1/n(利用指针函数) #include \main() {float peven(),podd(),dcall(); float sum; int n; while (1) {/**********FOUND**********/ scanf(\ scanf(\if(n>1) break; } if(n%2==0) {printf(\sum=dcall(peven,n); } else {printf(\sum=dcall(podd,n); } printf(\getch();} float peven(int n) {float s; int i; s=0; for(i=2;i<=n;i+=2) /**********FOUND**********/ s+=1%(float)i; s+=1/(float)i; return(s); } float podd(n) int n; {float s; int i; /**********FOUND**********/ s=1; s=0; for(i=1;i<=n;i+=2) s+=1/(float)i; return(s); } float dcall(fp,n) float (*fp)(); int n; {float s; s=(*fp)(n); return(s); } 354.【程序改错】 题目:下列程序中,函数fun的功能是:在字符串str 中找出ASCII码值最大的字符,将其放在第一个 位置上,并将该字符前面的字符向后顺序移动。 例如:调用fun函数之前给字符串输入:ABCDeFGH, 调用后字符串中的内容为:eABCDFGH。 #include { char max,*q;int i=0; max=p[i]; while(p[i]!=0) { if(max /**********FOUND**********/ p=q+i; q=p+i; } i++;} /**********FOUND**********/ while(q p) /**********FOUND**********/ { q=*(q-1); {*q=*(q-1); q--; } p[0]=max; } main() { char str[80]; printf(\ printf(\ fun(str); printf(\ getch(); } 410.【程序改错】 题目:有1、2、3、4个数字,能组成多少个互不相同 且无重复数字的三位数?都是多少? main() {int i,j,k; /**********FOUND**********/ printf(\ printf(\/**********FOUND**********/ for(i=1;i<=5;i++) for(i=1;i<5;i++) for(j=1;j<5;j++) for (k=1;k<5;k++) {/**********FOUND**********/ if (i!=k||i!=j||j!=k) if(i!=k&&i!=j&&j!=k) printf(\6.【程序改错】 题目:以下程序的功能是求如下表达式: 1 1 1 S = 1 + —— + ——— + ...... + ——————— 1+2 1+2+3 1+2+3+......+n 请改正程序中的错误,使程序能得到正确的运行结果。 #include float fun(); printf(\/**********FOUND**********/ print(\ scanf(\ printf(\ /**********FOUND**********/ fun(int n) float fun(int n) { int i,j,t; float s; s=0; /**********FOUND**********/ while(i=1;i<=n;i++); for(i=1;i<=n;i++) { t=0; for(j=1;j<=i;j++) t=t+j; /**********FOUND**********/ s=+1/t; s+=1.0/t } return s; } 26.【程序改错】 题目:fun函数的功能是:找出大于m的最小素数,并将其作为 函数值返回。 请改正程序中的错误,使它能得出正确的结果。 #include for(i=m+1;;i++) {/**********FOUND**********/ for(k=1;k if(i%k!=0) break; if(i%k= =0) break; /**********FOUND**********/ if(k /**********FOUND**********/ return k; return i; }} main() { int n; scanf(\ printf(\381.【程序改错】 题目:给定程序MODI1.C的功能是:删除w所指数组中下标 为k的元素中的值。程序中,调用了getindex、arrout 和arrdel三个函数,getindex用以输入所删元素的下标, 函数中对输入的下标进行检查,若越界,则要求重新输入, 直到正确为止。arrout用以输出数组中的数据,arrdel进 行所要求的删除操作。 #include \#include \#define NUM 10 /**********FOUND**********/ arrout ( int w, int m ) arrout ( int w[ ], int m ) { int k; /**********FOUND**********/ for (k = 1; k < m; k++) for (k = 0; k < m; k++) /**********FOUND**********/ printf (\ printf (\printf (\ arrdel ( int *w, int n, int k ) { int i; for ( i = k; i < n-1; i++ ) w[i] = w[i+1]; n--; return n; } getindex( int n ) { int i; do { printf(\scanf (\ } while( i < 0 || i > n-1 ); return i; } main( ) { int n, d, a[NUM]={21,22,23,24,25,26,27,28,29,30}; n = NUM; clrscr(); printf (\d = getindex( n ); n = arrdel ( a, n, d ); printf (\ 401.【程序改错】 题目:编写函数fun其功能是:输入两个实数,按代数值由小到大输出它们,并在fun() 函数中输出。(输出的数据都保留2位小数) #include \main() {fun(); getch();} fun() {/**********FOUND**********/ float t float t; float a,b; scanf(\ /**********FOUND**********/ if(ab) {t=a;a=b;b=t;} /**********FOUND**********/ printf(\ printf(\ } 350.【程序改错】 题目:请编写一个函数 int fun(int x),它的功能 是:判断整数x是否是同构数。若是同购数, 函数返回1;否则返回0。 所谓“同构数”是指这个数出现在它的平方数 的右边。例如:输入整数25,25的平方数是 625,25是625中右侧的数,所以25是同构数。 x的值由主函数从键盘读入,要求不大于1000。 #include \int fun(int x) {/**********FOUND**********/ int k int k; /**********FOUND**********/ k=x; k=x*x; /**********FOUND**********/ if((k==x)&&(k0==x)&&(k00==x)) if((k==x)||(k0==x)||”(k00==x)) return 1; else return 0; } main() { int x,y; clrscr(); printf(\ scanf(\ if(x>1000){printf(\ y=fun(x); if(y) printf(\ else printf(\ getch();} 355.【程序改错】 下列程序中,函数fun的功能是:在字符串str中找出ASCII码值最 小的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序 移动。 例如:调用fun函数之前给字符串输入:eBCDAFGH, 调用后字符串中的内容为:AeBCDFGH。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include { char min,*q=p;int i=0; min=p[i]; while(p[i]!=0) { if(min>p[i]) { min=p[i]; /**********FOUND**********/ p=p+i; q=p+i; } i++;} /**********FOUND**********/ while(q p) /**********FOUND**********/ {*q=(q-1); {*q=*(q-1); q--; } p[0]=min; } main() { char str[80]; printf(\ printf(\ fun(str); printf(\ } 392.【程序改错】 题目:编写程序, 求矩阵(3行3列)与5的乘积 例如, 输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 500 1000 1500 2000 2500 3000 3500 4000 4500 #include \ int fun(int array[3][3]) {/**********FOUND**********/ int i;j; int i,j; /**********FOUND**********/ for(i=1; i < 3; i++) for(i=0;i<3;i++) for(j=0; j < 3; j++) /**********FOUND**********/ array[i][j]=array[i][j]/5; arrau[i][j]=array[i][j]*5} main() { int i,j; int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; clrscr() ; for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\ printf(\ } fun(array); printf(\ for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\ printf(\ getch(); } 10.【程序改错】 题目:将若干学生的档案存放在一个文件中,并显示其内容。 struct student { int num; char name[10]; int age; }; struct student stu[3]={{001,\Mei\Hua\Hao\ #include /**********FOUND**********/ {struct student p; {struct student *p; /**********FOUND**********/ cfile fp; FILE *fp int i; if((fp=fopen(\ { printf(\ return; } /**********FOUND**********/ for(*p=stu;p fp=fopen(\ printf(\ Name age\\n\ for(i=1;i<=3;i++) { fread(p,sizeof(struct student),1,fp); /**********FOUND**********/ scanf(\ printf(\ } fclose(fp); } 20.【程序改错】 题目:已知一个数列从第0项开始的前三项分别为0、0、1,以 后的各项都是其相邻的前三项的和。下列给定程序中, 函数fun的功能是:计算并输出该数列的前n项的平方根 之和sum,n的值通过形参传入。 例如,当n=10时,程序的输出结果应为23.197745。 请更改程序中的错误,使它能得出正确的结果。 #include \ /**********FOUND**********/ fun (int n) double fun (int n) { double sum,s0,s1,s2,s; int k; /**********FOUND**********/ sum=0.0; sum=1.0; if(n<=2) sum=0.0; s0=0.0; s1=0.0; /**********FOUND**********/ s2=0.0; s2=1.0; /**********FOUND**********/ for(k=4;k>n;k++) for(k=4;k<=n;k++) { s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2;s2=s; } return sum; } main() { int n; scanf(\ printf(\} 387.【程序改错】 题目:给定程序MODI1.C中函数 fun 的功能是: 统计字符串中各元音字母(即:A、E、I、 O、U)的个数。注意:字母不分大、小写。 例如:若输入:THIs is a boot,则输 出应该是:1、0、2、2、0。 #include fun ( char *s, int num[5] ) { int k, i=5; for ( k = 0; k /**********FOUND**********/ num[i]=0; num[k]=0; for (; *s; s++) { i = -1; /**********FOUND**********/ switch ( s ) switch[*s] { case 'a': case 'A': {i=0; break;} case 'e': case 'E': {i=1; break;} case 'i': case 'I': {i=2; break;} case 'o': case 'O': {i=3; break;} case 'u': case 'U': {i=4; break;} } /**********FOUND**********/ if (i < 0) if(i>=0) num[i]++; }} main( ) { char s1[81]; int num1[5], i; clrscr(); printf( \fun ( s1, num1 ); for ( i=0; i < 5; i++ ) printf (\ 105.【程序改错】 给定程序MODI1.C中函数fun的功能是: 将s所指字符串中的字母 转换为按字母序列的后续字母(但Z转换为A, z转换为a),其它字符不 变。 #include {/***********FOUND***********/ while(*s!=\ while(*s!=’ \\0’) { if(*s>='A' && *s <= 'Z' || *s >= 'a' && *s<='z') { if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; /***********FOUND***********/ else s += 1; else *s += 1; } /***********FOUND***********/ s++ s++;}} main() { char s[80]; clrscr(); printf(\printf(\fun ( s ); printf (\getch(); getch();} 376.【程序改错】 题目:给定程序MODI1.C中函数 fun 的功能是: 根据整型形参 m,计算某一数据项的值。 y = 1/(100*100)+1/(200*200)+ 1/(300*300) + …… + 1/(m*m) 例如,若m = 2000,则应输出: 0.000160。 #include /**********FOUND**********/ fun ( int m ) double fun ( int m ) { double y = 0, d ; int i ; /**********FOUND**********/ for( i = 100, i <= m, i += 100 ) for( i = 100; i <= m;i += 100 ) { d = (double)i * (double)i ; /**********FOUND**********/ y += 1.0 \\ d ; y += 1.0 / d ; } return( y ) ; } main( ) { int n = 2000 ; clrscr( ) ; printf( \351.【程序改错】 题目:编写一个函数,该函数可以统计一个长度为3 的字符串在另一个字符串中出现的次数。例 如,假定输入的字符串为: asdasasdfgasdaszx67asdmklo, 字符串为:asd,则应输出n=4。 #include int fun(char *str,char *substr) {/**********FOUND**********/ int i,n=0 int i,n=0; /**********FOUND**********/ for(i=0;i<=strlen(str);i++) for(i=0;i<=strlen(str)-3;i++) if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2])) /**********FOUND**********/ ++i; n++ return n; } main() { char str[81],substr[4]; int n; clrscr(); printf(\输入主字符串: \ gets(str); printf(\输入子字符串: \ gets(substr); puts(str); puts(substr); n=fun(str,substr); printf(\getch(); }
正在阅读:
齐齐哈尔大学C语言题库 程序改错(部分)01-30
合作执行房地产项目重整计划暨公司股权收购协议书-超级经典示范03-10
矛盾分析法在学习中的运用05-09
小学数学开放题常见题型04-06
最新审定北师大版小学语文二年级上册《贺年片》习题第二课时(精编)12-13
管理会计习题06-27
XX公司业务招待管理办法11-04
学校生态文明建设创建方案10-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 齐齐哈尔
- 改错
- 题库
- 语言
- 部分
- 程序
- 大学
- 《产业经济学》期末试题及答案
- 2016年黄冈中学理科实验班预录模拟考试物理试题及答案
- 苏教版三年级语文下册教案
- 初中语文八年级上册名著《红星照耀中国》阅读高频练习记知识点合集
- DBQ断相保护器测试台的搭建和改造(新) - 图文
- 小班数学:学习6以内的数数,认识数字1.2
- 矛盾纠纷排查调处和安全隐患排查整治表格
- 机电传动控制实验指导书
- 2009年环评工程师技术方法考试真题
- 短文改错专项训练30题(1)
- 300B 单端胆机的实作
- 2011年度东财会计人员继续教育题库之《财务管理》
- 《国家资助项目申报与融资研究》上下册简介 - 图文
- 雅思写作12个经典题
- 电力系统稳定器(Pss)
- 影响水稻叶夹角的因素
- 通化市国民经济和社会发展第十二个五年规划纲要
- 第1、2章测试题-答案版
- 大学算法分析与设计复习总结
- 2010年药学(中级)《专业实践能力》模拟试卷(2)-中大网校