C语言专升本3程序改错题3月10日终版

合集下载

C语言专升本2阅读程序题(3月10日终版)

C语言专升本2阅读程序题(3月10日终版)

一、基本输入输出1.#include <stdio.h>main(){printf("a_bc\td\re\t_f\n"); printf("gh_\tij_\b\b__k"); }注:“_”代表一个空格。

运行结果为:e_ _ _ _ _ _ _ _fgh_ _ _ _ _ _ i_ _k3.#include <stdio.h>main(){int z, x=6,y=5;char w=’c’;z=x+y+w;printf("%d,%d,%d",x,y,z); }运行结果为:6,5,110 2.#include <stdio.h>main(){char c1=’a’,c2=’b’,c3=’c’;printf("a%cb%cc%c ",c1,c2,c3); }运行结果为:aabbcc4.#include <stdio.h>main(){ int i=128;float x=234.89;printf(“\n”);printf("%5d,%8.2f\n",i,x); printf("%2d,%4.1f\n",i,x);}运行结果为:128, 234.89128,234.95.#include <stdio.h>void main(void){int x=15,y=5;float f=1234.567f,b=12345;printf("%f %10f %10.2f %.2f%-10.2f\n",f,f,f,f,f); printf("x+y=%d\n",x+y);printf("b=%8f",b);}运行结果为:1234.567000 1234.567000 1234.57 1234.571234.57 x+y=20b=12345.0000006.#include <stdio.h> main( ) { int i=8, j=9;int x, y, z , w; x=i-- ; y=i ;z=++j; w=j;printf(“%d,%d,%d,%d”,x,y,z,w); }运行结果为:8,7,10,108.#include <stdio.h>main(){ int x=10;int y=79;printf("%5d,%5d,%5d",!x,x||y,x&&y); }注:“_”代表一个空格运行结果为:0, 1, 17.#include <stdio.h>main() { int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“a=%d,b=%d\n”,a,b);}运行结果为:a=2,b=19.#include <stdio.h>main(){ int z, x=2,y=4;char w=’c’;z=x+y;printf("%d,%d,%d,%c",x,y,z,w); }运行结果为:2,4,6,c10.#include <stdio.h>main(){char c='a';printf("%c,%d\n",c,c); }运行结果为:a,97 11.#include <stdio.h>main ( ){ char c1, c2;c1=getchar ( );printf (“%c, %d\n”, c1,c1 ); c2=c1+32;printf (“%c,%d\n”, c2,c2 ); }若敲进A,则运行结果为A,65a,9712.#include <stdio.h> main(){ int z,x=7,y=4; char w=’c’;z=x>y&&y+3<7||w; printf("\n%d,%d,%d",x,y,z); }运行结果为:7,4,113.#include <stdio.h> main(){ int i=10,j=10; int x,y,z,w;x=i--; y=i;z=++j;w=j;printf("%d,%d,%d,%d",x,y,z,w); }运行结果为:10,9,11,1114.#include <stdio.h>main(){int i=8,j=10,m=0,n=0;m+=i++;n- =--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}运行结果为:i=9,j=9,m=8,n=-915.#include <stdio.h>main(){ int x, b0, b1, b2;printf("Please enter an integer x:");scanf("%d", &x);b2 = x / 100;b1 = (x - b2 * 100) / 10;b0 = x % 10;printf("bit0=%d, bit1=%d, bit2=%d\n", b0, b1, b2); }若输入352,运行结果为:bit0=2, bit1=5, bit2=3二、程序控制结构(顺序,分支,循环)1.#include <stdio.h> main(){ int a=1,b=3,c=5; if (c==a+b)printf("yes\n"); elseprintf("no\n");}运行结果为:no 2.#include <stdio.h>main(){ int a=12, b= -34, c=56, min; min=a;if(min>b) min=b;if(min>c) min=c;printf("min=%d", min);}运行结果为:min=-343.#include <stdio.h> main(){ int x=2,y= -1,z=5; if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z); }运行结果为:54.#include <stdio.h>main(){int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c); }运行结果为:a=10 b=30 c=105.#include <stdio.h>main(){ float a,b,c,t;a=3;b=7;c=1;if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(b>c) {t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c); }运行结果为:1.00,3.00,7.00 6.#include <stdio.h>main(){int a=2;float num=3.12,x;if(num<4)x=2*num*a;printf("result is %f\n",x); }运行结果为:result is 12.4800007.#include<stdio.h> main( ) { char c=’A’;if ((‘0’<=c ) &&(c<=’9’))printf(“YES”);elseprint f(“NO”);}运行结果为:NO8.#include <stdio.h> main ( ) { float c=3.0 , d=4.0; if ( c>d )c=5.0;elseif ( c==d )c=6.0;elsec=7.0;printf ( “%.1f\n”,c ) ; }运行结果为:7.09.#include <stdio.h> main(){ int a=0,b=1,c=0,d=20; if(a)d=d-10;elseif(!b)if(!c)d=15;else d=25;printf("d=%d\n",d);}运行结果为:d=20 10.#include <stdio.h> main(){ int a=2,b=3,c=1; if (a>b)if (a>c)printf (“%d\n”,a); elseprintf (“%d\n”,c); printf (“over!\n”); }运行结果为:over!11.#include <stdio.h>main(){ int m;scanf("%d", &m);if (m >= 0){ if (m%2 == 0)printf("%d is a positive even\n", m);elseprintf("%d is a positive odd\n", m);}else{ if (m % 2 == 0)printf("%d is a negative even\n", m);elseprintf("%d is a negative odd\n", m);}}若键入-9,则运行结果为:-9 is a negative odd12.#include<stdio.h>main( ){ char ch;ch=getchar( );switch(ch){ case ‘A’ : printf(“%c”,’A’);case ‘B’ : printf(“%c”,’B’);break;default:prin tf(“%s\n”,”other”);}}当从键盘输入字母A时,运行结果为:AB 13.#include <stdio.h> main( ){ int a=1,b=0;scanf(“%d”,&a); switch(a){ case 1: b=1;break; case 2: b=2;break; default : b=10;}printf("%d", b);}若键盘输入5,运行结果为:1014.#include <stdio.h>main ( ){ int i=0,j=0,k=6;if((++i>0)||(++j>0))k++;printf("%d,%d,%d\n",i,j,k); } 运行的结果为: 1,0,715.#include <stdio.h> main( ){ int x , y , z;x=20, y=40, z=60; while(x<y)x+=4, y-=4;z/=2;printf(“%d,%d,%d”,x,y,z); }运行结果为:32,28,3016.#include <stdio.h> main(){ int num=0;while(num<=2){ num++;printf("%d\n",num);} }运行结果为:123 17.#include <stdio.h> main(){ int n=9;while(n>6){n--;printf(“%d,”,n); }}运行结果为:8,7,6,18.#include <stdio.h> main( ){ int sum=10,n=1; while(n<3){sum=sum-n;n++;}printf(“%d,%d”,n,sum); }运行结果为:3,7 19.#include <stdio.h>main(){ int num,c;scanf("%d",&num);do{c=num%10;printf("%d",c);}while((num/=10)>0);printf("\n");}从键盘输入23,则运行结果为:3220#include <stdio.h> main(){ int s=0,a=5,n; scanf("%d",&n);do{ s+=1;a=a-2;}while(a!=n);printf("%d,%d\n",s,a); } 若输入的值1,运行结果为:2,121.#include <stdio.h> main(){ int n1,n2;scanf(“%d”,&n2);while(n2!=0){ n1=n2%10;n2=n2/10;printf(“%d”,n1); }} 若在运行时输入1298,运行结果为:892122.#include <stdio.h> main(){ int i;for (i=0;i<6;i++)printf (“%d”,++i); printf (“%d”,i++);}运行结果为:1356 23.#include "stdio.h"main() {char c;c=getchar(); while(c!='?') {putchar(c);c=getchar();} }如果从键盘输入abcde?fgh(回车)运行结果为:abcde24.#include <stdio.h>main(){ char c;while((c=getchar())!=’$’){ if(‘A’<=c&&c<=‘Z’)putchar(c);else if(‘a’<=c&&c<=‘z’)putchar(c-32); }}当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD 25.#include <stdio.h> main(){int i=0,s=0;do{ if(i%2){ i++; continue; } i++; s +=i;}while(i<7);printf("%d\n",s);}运行结果为:1626.#include <stdio.h> main(){int x=1, y =0; while(x<=10){ y+=x*x;if (y>=10)break;x++;}printf(“%d %d”,y,x); }运行结果为:327.#include <stdio.h> main(){ int x, y =0;for(x=1;x<=10;x++) { if(y>=10)break;y=y+x;}printf(“%d %d”,y,x); }运行结果为:10 528.#include <stdio.h>main( ){ int n=0;while(n<=3)switch(n){ case 0 : ;case 1 : printf(“%d,”,n);case 2 : printf(“%d,”,n);n=n+3;break;default: printf(“**”);n=n+1;}}运行结果为:0,0,** 29.#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1: switch(y){case 0: a++;break; case 1: b++;break; }case 2: a++;b++;break;}printf(“a=%d, b=%d”,a,b);}运行结果为:a=2,b=130.#include <stdio.h>main(){ char grade=’C’;switch(grade){ case ‘A’: printf(“90-100\n”);case ‘B’: printf(“80-90\n”);case ‘C’: printf(“70-80\n”);case ‘D’: printf(“60-70\n”);break;case ‘E’: printf(“<60\n”);default : printf(“error!\n”); }}运行结果为:70-80 60-7031.#include <stdio.h>main(){ int k=0;char c='A';do{ switch(c++){ case 'A': k++;break; case 'B': k--;case 'C': k+=2;break; case 'D': k=k%2;continue; case 'E': k=k+10;break;default: k=k/3; }k++;}while(c<'C') ; printf("k=%d\n",k); }运行结果为:k=432.#include <stdio.h> main(){ int i=10;switch ( i ){ case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; }printf(“i=%d\n”,i);}运行结果为:i=13 33.#include <stdio.h> main( ){ int sum=0;i=0; while(i<=100)sum=sum+i;printf(“i=%d\n”,i); printf(“sum=%d\n”,sum); }运行结果为:死循环,无结果34.#include <stdio.h> main(){ int i,sum=0;i=1;do{sum=sum+i;i++;}while(i<=10); printf(“%d”,sum); }运行结果为:55 35.#include <stdio.h> main ( ){ int i=0, sum=1 ;do{sum+=i++ ;}while ( i<6 );printf ( “%d\n”, sum ); }运行结果为:1636.#include <stdio.h> main(){ int i;printf("\n"); for(i=0;i<6;i++) { printf("%d",i); if (i%2==0) printf("\n"); }}运行结果为:1234537.#include <stdio.h> main( ){ int i;for(i=0;i<8;i++) printf("%d,",++i); printf("%d,", i++); printf("%d", i);}运行结果为:1,3,5,7,8,938.#include<stdio.h> main( ){ int i=0, j=0; while( i<10) i++; while(j++<10) ; printf(“%d,%d”, i, j); }运行结果为:10,1139.#include<stdio.h>main( ){char i, j;for(i=’0’, j=’9’; i<j ; i++, j--) printf(“%c%c”, i, j);}运行结果为:091827364540.#include <stdio.h>main(){ int i, n, sum = 0, counter = 0; printf("Input 4 Numbers:\n"); for (i = 0; i < 4; i++){ scanf("%d", &n);if (n >= 0){ sum += n;counter++;}}printf("sum=%d,counter=%d\n", sum,counter);}若键入3 -5 7 -9运行结果为:sum=10,counter=2 41.#include <stdio.h>main(){ int i=5;do { switch (i%2){ case 4: i- -; break;case 6: i- -; continue;}i- -;i- -;printf(“i=%d\n”,i);} while(i>0);}运行结果为:i=3i=1i=-142.#include <stdio.h> main() { int y=9;for(;y>0;y- -) if(y%3==0){ printf(%d”,- -y); continue;}}运行结果为:852*43.#include <stdio.h> #define N 4 main(){ int i;int x1=1,x2=2;for(i=1;i<=N;i++){ printf("%4d%4d",x1,x2); if(i%2==0)printf("\n");x1=x1+x2;x2=x2+x1;}}运行结果为:1 2 3 513 21 3444.#include <stdio.h> main(){ int i, j;for(i=0;i<5;i++) {printf("\n");for (j=i++;j<6;j++) printf(“** “);}}运行结果为:** ** ** ** ** ** ** ** ** ** ** **45#include <stdio.h>main( ){int x, y;for(x=30,y=0;x>=10,y<10; x--,y++) x/=2, y+=2;printf(“x=%d,y=%d\n”,x,y);}运行结果为:x=0,y=12*46.#include <stdio.h> #define N 4main( ){ int i,j;for(i=1;i<=N;i++) { for(j=1;j<i;j++) printf(" "); printf("*");printf("\n");}}运行结果为:****三、函数1.#include <stdio.h>int Sub(int a, int b) {return (a -b);}main(){int x, y, result = 0; scanf("%d,%d", &x,&y ); result = Sub(x,y ) ;printf("result=%d\n",result); }当从键盘输入:6,3运行结果为:result=3 2.#include <stdio.h>int min( int x, int y ) { int m;if ( x> y )m = x;elsem = y;return(m);}main(){ int a=3,b=5,abmin ; abmin = min(a,b);printf(“min is %d”,abmin); }运行结果为:min is 53.#include<stdio.h>main( ){ int x=10;{ int x=20;printf(“%d, ”, x); }printf(“%d”, x); }运行结果为:20,10 4.#include<stdio.h>int fun(int m,int n) {static s=1;s++;return(s*(m+n));}main( ){ int a=0,b=1;printf("%d,",fun(a,b)); printf("%d,",fun(a,b)); }运行结果为:2,3,5.#include<stdio.h> func(int x) {x=10;printf(“%d, ”,x);}main( ){ int x=20;func(x);printf(“%d”, x); }运行结果为:10,206.#include <stdio.h> int m=4; int func(int x,int y){int m=1;return(x*y-m);}main(){int a=2,b=3;printf("%d\n",m);printf("%d\n",func(a,b)/m); }运行结果为:417.#include <stdio.h> int fun(int a, int b) { if(a>b)return(a);elsereturn(b);}main(){ int x=15, y=8, r; r= fun(x,y);printf("r=%d\n", r); }运行结果为:r=15 8.#include <stdio.h>int fac(int n){ int f=1,i;for(i=1;i<=n;i++)f=f * i;return(f);}main(){ int j,s;scanf(“%d”,&j);s=fac(j);printf("%d!=%d\n",j,s);}如果从键盘输入3,运行结果为:3!=69.#include <stdio.h> int b=1;void fun(){ int c=2;static int a=0; a=a+b+c;printf(“%d ”,a);}main(){ int cc;for(cc=1;cc<4;cc++)fun();}运行结果为:3 6 910.#include <stdio.h> int f(int a){ auto int b=0; static c=4;b=b+1; c=c+1; return(a+b+c); }main(){ int a=3,i;for(i=0;i<3;i++) printf(“\n%d”,f(a)); }运行结果为:9101111.#include <stdio.h> unsigned fun6(unsigned num) { unsigned k=1;do{ k*=num%10;num/=10;}while(num);return k;}main(){ unsigned n=26;printf(“%d\n”,fun6(n)); }运行结果为:12 12.#include <stdio.h>float f1(float x,float y) { float f2(float m,float n); float z;z=(x+y)/f2(x,y);return(z);}float f2(float m,float n) { float k;k=m-n;return(k);}main(){ float a=2,b=3,c;c=f1(a,b);printf(“\nc=%f”,c);}运行结果为:c=-513#include <stdio.h> int max(int x, int y); main(){ int a,b,c;a=7;b=8;c=max(a,b);printf("Max is %d",c); } max(int x, int y) { int z;z=x>y? x : y; return(z) ;}运行结果为:Max is 8*14.#include <stdio.h> int fac1(int n){ int f;if (n= =1) f=1; else f=fac1(n-1)*n; printf(“f=%d,”,f); return(f);} main(){ int y,n=4;y=fac1(n);printf(“y=%d\n”,y);}运行结果为:f=1,f=2,f=6,f=24,y=24四、数组1.#include <stdio.h>main(){ int i, a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]); }运行结果为:852 2.#include <stdio.h> main(){ int i,a[6];for (i=0; i<6; i++) a[i]=i;for (i=5; i>=0 ; i--) printf("%3d",a[i]);}运行结果为:5 4 3 2 1 03.#include <stdio.h> main( ){ int i,k,a[10],p[3]; k=5;for(i=0;i<10;i++) a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k); }运行结果为:21 4.#include <stdio.h> main( ){ int n[3][3], i, j;for(i=0;i<3;i++ ) {for(j=0;j<3;j++ ) {n[i][j]=i+j;printf(“%d ”, n[i][j]); }printf(“\n”);}}运行结果为:1 22 33 45.#include <stdio.h>int m[3][3]={{1},{2},{3}};int n[3][3]={1,2 ,3};main( ){ printf(“%d,”, m[1][0]+n[0][0]);printf(“%d\n”,m[0][1]+n[1][0]); }运行结果为:3,0 6.#include <stdio.h>main(){ int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=1; i<3; i++)printf("%d ",x[i][3-i]);}运行结果为:6 87.#include <stdio.h>main() {int j;char str[10]; scanf(“%s”, str);printf(“%s\n”,str); }键盘输入:howare(空格) you(回车)运行结果为:howare8.#include “stdio.h”func(int b[ ]) { int j;for(j=0;j<4;j++)b[j]=j;}main( ){ int a[4], i;func(a);for(i=0; i<4; i++)printf(“%2d”,a[i]); }运行结果为:0 1 2 39.#include <stdio.h>main(){char diamond[][5]={{‘_’,’_’,’*’},{‘_‘,’*’,’_’,’*’},{‘*’,’_’,’_‘,’_‘,’*’},{‘_’,’*’,’_’,’*’},{‘_’,’_’,’*’}}; int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}注:“_”代表一个空格。

C语言程序改错题汇总.doc

C语言程序改错题汇总.doc

C语言程序改错题汇总程序改错题汇总1、用“起泡法“对连续输入的十个字符排序后按从小到大的次序输出. 2、分别统计字符串中大写字母和小写字母的个数。

3、求1到10的阶乘的和。

4、判断m是否为素数,若是返回1,否则返回0。

5、用选择法对数组中的n个元素按从小到大的顺序进行排序。

6、求一个3行4列矩阵的外框的元素值之和。

7、以下程序把两个数按由大到小的顺序输出来。

8、求1到20的阶乘的和。

9、判断字符ch是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

(指针)10、已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。

下列给定程序中,函数fun的功能是计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。

11、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少12、编写函数fun计算下列分段函数的值x*xx x0.0 { 累计营业额;输入下一笔交易额;} 输出营业额;} 记一笔交易额为变量sale,营业额为sigma。

124、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少125、编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。

例如输入35=或5-2=或3*4=或4/2=,求表达式结果。

126、输入字符序列,字符序列以特殊字符“”结束。

程序从前向后依次读入字符,并翻译出新的字符输出。

翻译的规则是如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符包括数字符需重复输出n1次如果当前读入的字符不是数字符,则输出该字符。

输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。

翻译直至当前读入的字符为字符‘’,结束翻译和输出。

127、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下每位数字都加上5,然后除以10的余数代替该位数字。

c语言题库改错题及详解答案

c语言题库改错题及详解答案

c语言题库改错题及详解答案C语言是一种广泛使用的计算机编程语言,它以其强大的功能和灵活性而闻名。

在学习和掌握C语言的过程中,练习题库中的改错题是提高编程技能的有效方式。

以下是一些常见的C语言改错题及其详解答案。

1. 题目:编写一个程序,计算并输出1到10的累加和。

错误代码:```cint main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum = sum + i;}print("Sum is %d", sum);return 0;}```错误点: `print` 函数应为 `printf`。

正确代码:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum += i; // 可以简化为 sum += i;}printf("Sum is %d\n", sum);return 0;}```2. 题目:编写一个程序,判断输入的年份是否为闰年。

错误代码:```cint main() {int year;printf("Enter a year: ");scanf("%d", &year);if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```错误点:逻辑判断的括号使用不正确。

正确代码:```c#include <stdio.h>int main() {int year;printf("Enter a year: ");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```3. 题目:编写一个程序,实现字符串的反转。

专升本c语言程序设计试题及答案

专升本c语言程序设计试题及答案

专升本c语言程序设计试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述,哪个是正确的?A. 函数可以没有返回值B. 函数不能有多个返回值C. 函数必须有返回值D. 函数不能有参数答案:A3. 在C语言中,以下哪个运算符用于计算两个整数的和?A. %B. +C. ==D. &&答案:B4. C语言中,以下哪个关键字用于定义一个指针?A. intB. floatC. charD. *答案:D5. 在C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. // 这是注释/* 这是注释 */D. // 这是注释/* 这是注释 */答案:B6. 下列关于C语言数组的描述,哪个是错误的?A. 数组可以是多维的B. 数组下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D7. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fprintfD. All of the above答案:D8. C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[5] = "Hello";C. char str[] = {'H', 'e', 'l', 'l', 'o'};D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. All of the above答案:A10. 下列关于C语言循环的描述,哪个是正确的?A. for循环可以嵌套B. while循环不能嵌套C. do-while循环至少执行一次D. All of the above答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:___________。

C语言改错题-含答案

C语言改错题-含答案

第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>void fun (char *s, char *t){/**********FOUND**********/int i;sl = strlen(s);for (i=0; i<sl; i++)/**********FOUND**********/t[i] = s[sl-i];for (i=0; i<sl; i++)t[sl+i] = s[i];/**********FOUND**********/t[2*sl] = "0";}main(){char s[100], t[100];printf("\nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %s\n", t);}答案:1). int i,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或 t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。

和值通过函数值返回main 函数。

2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:8.391667。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ){/**********FOUND**********/s = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}main( ){int n = 5;printf( "\nThe value of function is: %lf\n", fun ( n ) );}答案:1). double fun(int n)2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。

c语言改错题题库及详解答案

c语言改错题题库及详解答案

c语言改错题题库及详解答案C语言是一种广泛使用的计算机编程语言,它以其高效性、灵活性和强大的功能而受到程序员的青睐。

然而,即使是经验丰富的程序员也难免会在编写C语言程序时犯一些错误。

下面是一个C语言改错题题库及其详解答案,帮助学习者识别并改正常见的编程错误。

题目1:错误的变量初始化```cint main() {int a;printf("%d", a); // 错误:变量a未初始化return 0;}```详解答案:在C语言中,如果一个变量在使用前没有被显式地初始化,它的值是不确定的。

为了修复这个错误,我们应该在声明变量时对其进行初始化。

```cint main() {int a = 0; // 正确的初始化printf("%d", a);return 0;}```题目2:错误的数组索引```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[5]); // 错误:数组索引越界return 0;}```详解答案:数组索引是从0开始的,所以对于一个有5个元素的数组,有效的索引范围是0到4。

访问数组的第6个元素会导致越界错误。

```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[4]); // 正确的索引return 0;}```题目3:错误的循环使用```cint main() {int i;for (i = 0; i <= 10; i++) {printf("%d ", i);} // 错误:循环条件错误return 0;}```详解答案:循环条件应该是`i < 10`,以确保循环不会无限执行。

```cint main() {int i;for (i = 0; i < 10; i++) {printf("%d ", i);}return 0;}```题目4:错误的函数调用```cint main() {int result = add(5, 3); // 错误:add函数未定义printf("%d", result);return 0;}```详解答案:在调用一个函数之前,需要确保该函数已经被定义。

c语言改错题题库及详解答案

c语言改错题题库及详解答案

c语言改错题题库及详解答案1. 题目:以下代码段中存在错误,请找出并改正。

```c#include <stdio.h>int main() {int a = 10;int b = 20;int c = a + b;printf("The sum is %d", c);return 0;}```答案:代码中缺少了字符串结束的空格。

应改为:```cprintf("The sum is %d ", c);```2. 题目:找出并改正以下代码段中的错误。

```c#include <stdio.h>int main() {int num = 100;if (num = 100)printf("Number is 100\n");return 0;}答案:代码中使用了赋值运算符 "=" 而不是比较运算符 "=="。

应改为:```cif (num == 100)```3. 题目:以下代码段中存在逻辑错误,请指出并改正。

```c#include <stdio.h>int main() {float a, b, c;scanf("%f %f", &a, &b);c = a / b;printf("The result is %f", c);return 0;}```答案:代码中没有检查除数 b 是否为 0,这会导致运行时错误。

应添加检查:```cif (b != 0) {c = a / b;printf("The result is %f", c);} else {printf("Error: Division by zero.\n");}```4. 题目:找出并改正以下代码段中的语法错误。

专升本c语言试题及答案

专升本c语言试题及答案

专升本c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述,不正确的是()。

A. C语言是一种高级语言B. C语言可以直接在计算机上运行C. C语言具有结构化的特点D. C语言具有丰富的库函数答案:B2. C语言中,以下数据类型不是基本数据类型的是()。

A. intB. floatC. charD. struct答案:D3. 下列选项中,哪个是C语言中的合法标识符()。

A. 2bB. intC. _varD. float答案:C4. 在C语言中,以下哪个选项不是运算符()。

A. %B. &&C. :D. =答案:C5. C语言中,用于定义数组的关键字是()。

A. structB. unionC. enumD. array答案:D6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串()。

A. strcat()B. strcpy()C. strcmp()D. strlen()答案:B7. 下列关于C语言函数的描述,正确的是()。

A. 函数必须有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数的返回值类型必须与参数类型一致答案:C8. 在C语言中,以下哪个选项是正确的文件操作函数()。

A. fopen()B. fclose()C. fgetc()D. All of the above答案:D9. 下列关于C语言指针的描述,不正确的是()。

A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以作为函数的返回值D. 指针可以存储函数的地址答案:D10. 在C语言中,以下哪个选项是正确的字符串定义方式()。

A. char str[] = "Hello";B. char str[] = {'H', 'e', 'l', 'l', 'o'};C. char str[] = "Hello", "World";D. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑与的运算符是____。

C语言改错题考试题库

C语言改错题考试题库
【程序改错】
--------------------------------------------------------
功能:在一个一维整型数组中找出其中最大的数及其下标。
------------------------------------------------------*/
#define N 10
sort(str[N]);
for(i=0;i<N;i++)
printf("%c",str[i]);
printf("\n");
}
sort(char str[N])
{
int i,j; char t;
for(j=1;j<N;j++)
/***********FOUND***********/
for(i=0;i<N-j;i--)
功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。
------------------------------------------------------*/
#include <stdio.h>
#define N 20
void fun(int a[], int n)
{
int i, j, t, p;
------------------------------------------------------*/
#include "conio.h"
#include "stdio.h"
#include "ctype.h"
#include "string.h"

专升本C语言试卷3

专升本C语言试卷3
21. 以下程序的输出结果是 (D) union myun { struct { int x, y, z; } u; int k; } a; main() { a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(%d\n”,a.u.x); } A) 4 B) 5 C) 6 D) 0
19. 以下程序的输出结果是(B) main() { char st[20]= “hello\0\t\\\”; printf(%d %d \n”,strlen(st),sizeof(st)); } A) 9 9 B) 5 20 C) 13 20 D) 20 20
20. 以下程序的输出结果是 (D) main() { int a, b; for(a=1, b=1; a<=100; a++) { if(b>=10) break; if (b%3= =1) { b+=3; continue; } } printf(“%d\n”,a); } A) 101 B) 6 C) 5 D) 4
28.有以下程序
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9};
int i,j,k=2;
for(i=0;i<3;i++)
{ printf("%d",m[k][i]); }
}
执行后输出结果是:(C)
A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9
29.有以下程序
D)structtt[2]={{1,"A",62.5},{2, "B",75.0}};
27. 若变量 c 为 char 类型,则能正确判断出 c 为小写字母的表达式是( D )。

c语言程序改错题

c语言程序改错题

【程序改错】功能: 根据整型形参m的值, 计算如下公式的值。

1 1 1.....1.—..—......——2x2 3x3 mxm例如: 若m=5, 则应输出: 0.536389------------------------------------------------------*/#include <stdio.h>double fun(int m){double y=1.0;int i;/**********FOUND**********/for(i=2;i<m;i--) for(i=2;i<=m;i++) /**********FOUND**********/y-=1/(i*i); y-=1.0/(i*i)/**********FOUND**********/return m; return y}main(){int n=5;printf("\nthe result is %lf\n",fun(n));}【程序设计】---------------------------------------------------------题目: 编程求所有4位数, 这些数具有以下特点: 这数本身是平方数, 且其低2位和高2位所组成的2个2位数也是平方数。

要求: 使用程序中定义的变量-------------------------------------------------------*/#include <stdio.h>#include <math.h>main(){int qw,bw,sw,gw; // qw千位数bw百位数sw十位数gw个位数int a,b; //a 高两位低两数int i; //循环变量/**********Program**********/for(i=1000;i<10000;i++){qw=i/1000;bw=i/100%10;sw=i/10%10;gw=i%10;1a=qw*10+bw;b=sw*10+gw;if(sqrt(i)==(int)sqrt(i)&&sqrt(a)==(int)sqrt(a)&&sqrt(b)==(int)sqrt(b)) printf(“%d\n”,i);}/********** End **********/}【程序设计】功能: 从键盘为一维整型数组输入10个整数, 调用fun 函数找出其中最小的数, 并在main函数中输出。

c语言改错题

c语言改错题

c语言改错题C语言改错题什么是C语言改错题C语言改错题是指一类常见的编程题型,要求学生在给定的代码中找出错误,并修正这些错误,使得代码能够正常运行并达到预期的功能。

这类题目既考察了学生对C语言的掌握程度,又能培养学生发现和解决问题的能力。

题目形式C语言改错题一般以给定的代码片段为基础,要求学生找出并修正其中的错误。

常见的错误包括语法错误、逻辑错误、变量名错误等。

下面是一个示例:#include <>int main() {int a = 1;int b = 2;int sum;sum = a + b;printf("The sum of %d and %d is: %d\n", a, b, sum;return 0;}这段代码中包含了一个语法错误,即缺少了一个右括号。

正确的代码应该是:#include <>int main() {int a = 1;int b = 2;int sum;sum = a + b;printf("The sum of %d and %d is: %d\n", a, b, sum);return 0;}如何解答C语言改错题解答C语言改错题可以按照以下步骤进行:1.仔细阅读给定的代码,理解代码的功能和意图。

2.查找代码中的错误,包括语法错误、逻辑错误和命名错误等。

3.修正找到的错误,使得代码能够正常编译和运行。

4.验证修正后的代码是否达到了预期的功能。

在解答C语言改错题时,需要注意以下几点:•首先要检查代码中的语法错误,包括缺少分号、括号不匹配等。

•其次要注意代码中的逻辑错误,例如错误的判断条件、错误的变量赋值等。

•还要注意代码中的命名错误,例如使用了未定义的变量、函数名拼写错误等。

总结C语言改错题是提高学生编程能力和理解C语言的重要方式之一。

通过解答这类题目,学生能够发现和纠正错误,提高自己的编程技能。

希望本文对你理解和解答C语言改错题有所帮助。

C语言程序改错——答案

C语言程序改错——答案

C语言程序改错——答案(总33页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--程序改错--------------------------------------------------------请改正程序中的错误,使它能得出正确的结果。

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/题目1:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。

例如,若给num1和num2分别输入49 和21,则输出的最大公约数为7。

int fun(int a,int b) {int r,t;if(a<b){t=a;/**********FOUND**********/b=a;/**********FOUND**********/a=t;}r=a%b;while(r!=0){a=b;b=r;/**********FOUND**********/r=a/b;}/**********FOUND**********/return a;}int main(void){int num1,num2,a;scanf("%d%d",&num1,&num2);a=fun(num1,num2);printf("the maximum common divisor is %d\n\n",a);return 0;}答案:1). a=b;2). b=t;3). r=a%b;}4). return b; 或 return(b); 或 return(b);题目2:下列给定程序中,函数fun 的功能是:判断m是否为素数,若是返回1,否则返回0。

主函数的功能是:按每行5个输出1-100之间的全部素数。

请改正程序中的4个错误,使它能得出正确的结果。

C语言程序改错题

C语言程序改错题

C语言程序改错一、程序改错共 138 题(共计 1380 分)━━━━━━━━━━━━━━━━━━第 1 题(10.0 分)/*------------------------------------------------------ 功能:根据整型形参 m,计算如下公式的值:y=1+1/3+1/5+1/7+...+1/(2m-3)------------------------------------------------------*/ #include "stdio.h"double fun(int m){/**********FOUND**********/double y=1int i;/**********FOUND**********/for(i=3; i<m; i++)/**********FOUND**********/y+=1.0/(2i-3);return(y);}void main(void){int n;clrscr();printf("Enter n: ");scanf("%d", &n);printf("\nThe result is %1f\n", fun(n));getch();}答案:1). double y=1;2). for(i=3; i<=m; i++) 或 for(i=3; i<m+1;i++)3). y+=1.0/(2*i-3);第 2 题(10.0 分)/*------------------------------------------------------ 功能:用选择法对数组中的 n 个元素按从小到大的顺序进行排序。

------------------------------------------------------*/ #include <stdio.h>#define N 20void fun(int a[], int n){int i, j, t, p;for (j = 0 ;j < n-1 ;j++){/**********FOUND**********/p = jfor (i = j;i < n; i++)/**********FOUND**********/if(a[i] >a[p])/**********FOUND**********/p=j;t = a[p] ;a[p] = a[j] ;a[j] = t;}}main(){int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ;for(i = 0;i < m;i++)printf("%d ",a[i]);printf("\n");fun(a,m);printf("排序后的数据:") ;for(i = 0;i < m;i++)printf("%d ",a[i]);printf("\n");getch();}答案:1). p = j;2). if(a[i] < a[p]) 或 if(a[p] > a[i])3). p = i;第 3 题(10.0 分)/*------------------------------------------------------ 功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。

C语言专升本1单项选择题(3月10日终版)

C语言专升本1单项选择题(3月10日终版)

计算机程序设计基础(C语言)单项选择练习题一、基本概念1. C语言程序是由构成的。

A)一些可执行语言 B)main函数C)函数 D)包含文件中的第一个函数2. 是构成C语言程序的基本单位。

A)函数 B)过程 C)子程序 D)子例程3.C语言可执行程序从开始执行。

A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数4.C语言程序从main()函数开始执行,所以这个函数要写在____。

A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置5. 以下说法中正确的是。

A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main( )函数中定义C)C语言程序总是从main( )函数开始执行D)C语言程序中的main( )函数必须放在程序的开始部分6. 下列方法中错误的是。

A)主函数可以分为两个部分:主函数说明部分和主函数体。

B)主函数可以调用任何非主函数的其它函数。

C)任何非主函数可以调用其它任何非主函数。

D)程序可以从任何非主函数开始执行。

7.下列关于C语言的说法错误的是。

A) C程序的工作过程是编辑、编译、连接、运行B) 标识符的命名由英文字母、数字和下划线组成,与字母的大小写无关C) C程序的三种基本结构是顺序、选择、循环D) 一个C程序总是从main函数开始执行的8. 系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才能运行。A) 编辑、编译 B )编辑、连接 C) 编译、连接 D) 编辑、改错9.下列说法中正确的是。

A)由于C源程序是高级语言程序,因此一定要在TC软件中输入。

B)由于C源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑的软件中输入。

C)由于C程序是高级语言程序,因此输入后即可执行。

D)由于C程序是高级语言程序,因此它是由命令组成的。

专升本c语言历年试题及答案文库

专升本c语言历年试题及答案文库

专升本c语言历年试题及答案文库专升本C语言历年试题及答案文库一、选择题1. 下列关于C语言的描述中,错误的是()。

A. C语言是一种高级编程语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有丰富的库函数答案:B2. 在C语言中,用于定义字符型变量的关键字是()。

A. intB. charC. floatD. double答案:B二、填空题1. C语言中,用于定义字符串的字符数组的声明方式是:char str[20] = "Hello"; 其中数组的长度是()。

答案:202. 在C语言中,使用()关键字可以定义一个函数。

答案:void 或者 int 或者其他类型三、简答题1. 简述C语言中指针的概念。

答案:指针是一种变量,它存储了另一个变量的内存地址。

通过指针,程序可以间接访问和修改变量的值。

2. 解释C语言中的数组和指针的关系。

答案:在C语言中,数组名可以被当作指向数组第一个元素的指针。

因此,数组和指针密切相关,指针可以用来遍历数组。

四、编程题1. 编写一个C语言程序,实现求两个整数的和。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two numbers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现字符串的反转。

答案:```c#include <stdio.h>#include <string.h>int main() {char str[100], reversed[100];printf("Enter a string: ");gets(str);for (int i = 0; str[i] != '\0'; i++) {reversed[i] = str[strlen(str) - 1 - i];}reversed[strlen(str)] = '\0';printf("Reversed string: %s\n", reversed);return 0;}```五、论述题1. 论述C语言在现代编程语言中的地位和作用。

C语言程序改错题及答案

C语言程序改错题及答案
if(x>max) max=x;
if(x<min) min=x;
}
printf("%f,%f\n",max,min);
}
10、.在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
for(i=0;i<sl;i++)
t[i]=s[i];
for(i=0;i<sl;i++)
/********1********///t[sl+i]=s[s1-1-i];
t[sl+i]=s[sl-i];
/********2********/
t[sl]="\0";//t[sl+s1]=’\0’;
}
void main()
/***** 2 *****/
for(i=1;i<strlen(str);i++)//i=0
if(str[i]>='a'&& str[i]<='z') str[i]=str[i]-32 ;
puts(str);
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{ int n,i;
/***** 1 *****/
char str;// char*str

(完整word版)C语言程序改错总结

(完整word版)C语言程序改错总结

难度11、程序D1.c的功能是从键盘读入一个数并在屏幕上显示。

int main(void){int xy2;/*********Found************/scanf("%s", &xy2); //改为:scanf("%d”,&xy2);/*********Found************/printf("xy2=%5d\n", &xy2); //改为:printf("xy2=%5d\n”,xy2);return 0;}2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。

#include<stdio。

h>float fmax(float x, float y);int main(void){/*********Found************/float l,1; //il = 3。

0;i = 5.6f;/*********Found************/printf("fmax(%5.2f,%5.2f)=%5.2f\n”, i, l, fMax(i,l)); // fmaxreturn 0;}/*********Found************/int fmax(float x, float y) //改:float{if (x < y)return y;else return x;}3、程序D4.c的功能是计算半径为2+3的圆的面积。

#include<stdio.h〉#define PI 3。

14/*********Found************/#define S(bj)PI*bj*bj //改:PI*(bj)*(bj) int main(void){/*********Found************/int mianJi;//改为:doublemianJi = S(2+3);printf(”mian ji=%5。

C语言改错题以及参考答案

C语言改错题以及参考答案

改错参考答案:(3)将字符串yy在屏幕上输出#include<stdio.h>void main(){/*********Found************/ char yy[100] = "ok??\n";/*********Found************/f0r (; *yy; yy++){putchar(*yy);}}#include<stdio.h>void main(){/*********Found************/ char*yy="ok??\n";/*********Found************/for (; *yy; yy++){putchar(*yy);}}(4)计算半径为2+3的圆的面积#include<stdio.h>#define PI3."14/*********Found************/#define S(r) PI*r*rvoid main(){/*********Found************/ int mianJi;mianJi = S(2+3);printf("mian ji=%5."2f\n", mianJi);}#include<stdio.h>#define PI3."14/*********Found************/#define S(r) PI*(r)*(r)void main(){/*********Found************/1floatmianJi; mianJi = S(2+3);printf("mian ji=%5."2f\n", mianJi);}(8)打开文件d:\te.c用于读并判断打开是否成功#include<stdio.h>void main(){FILE *fp;/*********Found************/char fileName[] = "d:\te.c";/*********Found************/fp = fopen(fileName, "w");/*********Found************/if (fp == EOF){puts("File Open Error!");exit(1);}putchar(fgetc(fp));fclose(fp);}#include<stdio.h>void main(){FILE *fp;/*********Found************/char fileName[] = "d:\\te.c";/*********Found************/fp = fopen(fileName, "r");/*********Found************/if (fp ==NULL){puts("File Open Error!");exit(1);}putchar(fgetc(fp));fclose(fp);}(9)申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间#include<stdio.h>#include<alloc.h>void main(){/*********Found************/char p[100];2/*********Found************/if (p = (char *)malloc(100) == NULL){printf("malloc memory fail!\n");return ;}printf("%p\n", p);/*********Found************/fclose(p);}#include<stdio.h>#include<alloc.h>void main(){/*********Found************/ char*p;/*********Found************/if ((p = (char *)malloc(100))== NULL){printf("malloc memory fail!\n"); exit(1);}printf("%p\n", p);/*********Found************/free(p);}(10)将字符串p显示在屏幕上#include<stdio.h>/*********Found************/#define BEGIN/*********Found************/#define ENDvoid main(){char *p = "";const int i = 0;for (printf("\n"); p[i]; )BEGINputchar(p[i]);i++;END}#include<stdio.h>/*********Found************/#define BEGIN{/*********Found************/#define END}3void main(){char *p = "";const int i = 0;for (printf("\n"); p[i]; )BEGINputchar(p[i]);/*********Found************/p++;END}(14)调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值#include<stdio.h>/*********Found************/void swap(int x, int y){int tmp;/*********Found************/______*x = *y;/*********Found************/y = x;}void main(){int a = 3, b = 4;swap(a, b);printf("a=%d b=%d\n", a, b);}#include<stdio.h>/*********Found************/void swap(int*x, int*y){int tmp;/*********Found************/tmp = *x;*x = *y;/*********Found************/*y = tmp;}void main(){int a = 3, b = 4;/*********Found************/swap(&a,&b);printf("a=%d b=%d\n", a, b);}4(15)调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值#include<stdio.h>void swap(int *x, int *y){int *tmp, xy;/*********Found************/*tmp = x;*x = *y;/*********Found************/y = *tmp;}void main(){int a = 3, b = 4;/*********Found************/swap(*a, *b);/*********Found************/printf("a=%d b=%d\n", &a, &b);}#include<stdio.h>void swap(int *x, int *y){int *tmp, xy;/*********Found************/xy=*x;*x = *y;/*********Found************/*y =xy;}void main(){int a = 3, b = 4;/*********Found************/swap(&a,&b);/*********Found************/printf("a=%d b=%d\n",a,b);}(16)worker的信息使用结构体存储,从键盘读入其各项信息并显示#include<stdio.h>void main(){struct WKER{long ID;long int num;char name[20];5char sex;/*********Found************/} ;worker.ID = 1L;/*********Found************/scanf("%d %s %s", &worker.num, , &worker.sex);/*********Found************/printf("worker's info:num=%d name=%s sex=%s\n",worker.num, , worker.sex);}#include<stdio.h>void main(){struct WKER{long ID;long int num;char name[20];char sex;/*********Found************/}worker;worker.ID = 1L;/*********Found************/scanf("%ld %s %c", &worker.num, ,&worker.sex);/*********Found************/printf("worker's info:num=%ld name=%s sex=%c\n",worker.num, , worker.sex);}(17)函数userLogin的功能主要是统计并返回登录的用户数,用户名最长30字节#include <stdio.h>long userLogin(char *userName){/*********Found************/long userCount = 0;userCount++;/*********Found************/return ;}void main( ){/*********Found************/char *userName;int i;while(1){printf("userName:");scanf("%s", userName);i = userLogin(userName);6}}#include <stdio.h>long userLogin(char *userName){/*********Found************/ staticlong userCount = 0;userCount++;/*********Found************/returnuserCount;}void main( ){/*********Found************/ charuserName[31];int i;while(1){printf("userName:");scanf("%s", userName);i = userLogin(userName);}}(19)将inBuf中字符串拆分成一个个的单词/*单词之间的分隔符由串divChar,程序中定义为“;?!,.>/\”。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机程序设计基础(C语言)
程序改错练习题及参考答案
F面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1 .求n !=1
2
3
4 n
main ()
{ long int sum;
int n,i=1;
scan f(”%d”, n); printf( n ” );
while(i< n)
{ sum=sum*i; i++;
}
prin tf("sum=%d",sum);
}
2 .求一个数组中最大值及其下标。

mai n()
{ int max,j,m;
int a[5];
for(i=1:i<=5:i++)
scanf( “ %d”,a) max=a[0];
for(i=1:i<=5:i++) for(i=0:i<5:i++)
if(max>a[il)
{ max=a[j];
m=i;
}
printf( 下标:%d\n 最大值:%d }
3 .用一个函数求两个数之和。

sum(x,y)
{ float z;
z=x+y;
return:
}
main ()
{ float a,b;
int c:
scan f("%f,%f", &a, &b);
c=sum(a,b);
prin tf("\nSum is %f",sum):
}
参考答案:
sum=1
scanf( " %d",&n);
while(i<=n)
prin tf("sum=%ld",sum);
for(i=0;j<5;j++)
scanf( “ %d",&a[i]);
if(max<a[j])
,i, max) : printf( 下标':%d\n 最大值float sum(float x, float y );
return(z);
float c;
prin tf("\nSum is %f',c);
4.编程计算下面分段函数,输入x,输出y
:%d ” , m,max);
x 1 x 0
y 2x 1 0 x 10
3x 11 x 10
main ()
{ int x,y;
printf( a n );
scanf( “ %d”,x); scanf( “ %&x);,
if(x<0)
y=x-1;
else if(x>=0||x<=10) else if(x<=10)
y=2x-1; y=2*x-1;
else
y=3x-1; y=3*x-1;
printf( “ y=%d ”,&y); printf( “ y=%d ”,
}
5. 求1+2+3+4+ mai
n ( ){
+100 , 并输出•
int i, sum sum=0;
i=1;
while(i<=100)
{ sum=sum*i ; sum=sum+i ;
i++ ;
}
printf (

}
%c ” , sum ) printf( “%” , sun)i ;
6. 求100~300间能被3整除的数的和。

mai n()
{ int n;
Iona sum; long sum=0;
for(n=100 ;n<=300;
n++)
{
if(n %3=0) if(n %3==0)
sum=sum* n; sum=sum+n;
}
printf( “ %ld ” ,sum);
}
7. 求3+4
int a=3,b=4;
main ()
{ int a,c; int c;
c=a+b; printf(
} 8 .程序读入20个整数,统计非负数个数,并计算非负数之和
#include “ stdio.h ”
9. x , y 两个数中,让x 中存较大的数, #i nclude<stdio.h> mai n( ){
int x , y=200 , z=0; x=180; if ( x<y) z=x; __________
printf( “ x=%d,y=%d ,&x,&y); }
10. 实现华氏温度转换为摄氏温度,公式为: main () { int c,f ;
prin tf("Please enter f:");
scan f("%f", &f); c=5/9*(f-32): printf("f=%f,c=%f',c,f); } { z=x;x=y;y=z;} printf( “ x=%d,y=%ic ” ,x,y); 5
c= - *(f-32),要求输出结果取 2位小数。

9 float c,f : c=5.0/9*(f-32);
prin tf("f=%.2f,c=%.2f",f,c);
11. 求一个3 X3矩阵的主对角线元素之和
mai n()
{ int a[3][3]; int sum;
mai n(){
int i, a[20], s , count ;
s= _____ fo _________
scanf( “ %d ” ,a[il); for(i=0;i<20;i++) {
if(a[i]<0)
break; _______ s +=a[i]; coun t++;
}
printf( “ s=%f count=%fn ” ,s, count); } s=co un t=0; for(i=0;i<20;i--) scanf( “ %d ” ,
&a[i]); con ti nue; printf( “ s=%d count=%d ,s,co un t); c=%d ” ); printf( “ c=%d ” ,c);
y 存较小的数
int sum=0;
int i,j; printf( En ter datan ” );
for(i=0;i<3;i++)
for(i=0,j<=3;i++)
seanf( “ %f ” ,&a[i 】[il); for(i=0;i<3;i++)
for ______
if (i ______
sum +=a[i][j];
printf( “ sum=%5d ,sum); }
13.通过函数调用,求两个数之差
sub(x,v) { float z; z=x-y; return;
float sub(float x,float y) return 乙 main ()
{ float a,b; int c;
float c; scanf( “ %f,%f ” ,&a,&b); c=sub(a,b);
printf( n “Ub is %f ” ,sub) printf( n “Ub is %f }
12 .下面程序的功能是计算 n!。

mai n() { int i,n ;
int s ;
printf("Please enter n:"); scan f("%d", n);
for(i=1:i<=n:i++):
int s=1 : prin tf("%d! = %d",i,s): }
scan f("%d", &n); for(i=1;i<=n:i++) // s*=i; prin tf("%d! = %d" ,n,s); 去掉最后的分号 for(j=0,j<3;j++) scanf( d'% ,&a[i][j]); for(j=0;j<3;j++) if (i==j)。

相关文档
最新文档