东秦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[sli];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[sli1];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语言程序改错题

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

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

------------------------------------------------------*/#include <>#include <>#include <>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,则应输出:。

------------------------------------------------------*/#include <>#include <>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = ; 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语言程序改错题

第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语言改错题以及参考答案

改错参考答案:(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,程序中定义为“;?!,.>/\”。

C语言程序改错基本题库

C语言程序改错基本题库

北京石油化工学院12级复习题程序改错一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1.求1234nmain(){ long int sum;int n,i=1;scanf("%d",n);printf(“\n”);while(i<n){ sum=sum*i;i++;}printf("sum=%d",sum);}2.求一个数组中最大值及其下标。

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

sum(x,y){ float z;z=x+y;return;}main(){ float a,b;int c;scanf("%f,%f",&a,&b);c=sum(a,b);printf("\nSum is %f",sum);}5.用指针作函数参数,对输入的两个整数按大小顺序输出。

swap(int *p1,*p2){ int *p;*p=*p1;*p1=*p2;*p2=*p;}main(){ int a,b;int *q1,*q2;scanf("%d,%d",&a,&b);&q1=a,&q2=b;if(a<b) swap(*q1,*q2);printf("\n%d,%d\n",q1,q2);}前五题答案:1.sum应初始化即加入sum=1第四行改为:scanf(“%d”,&n);第六行改为:while(i<=n)第十行改为:printf("sum=%ld",sum);2. 第四行改为:for(j=0;j<5;j++)第五行改为:scanf(“%d”,&a[j]);第七行改为:for(j=0;j<5;j++)第八行改为:if(max<a[j])第十三行改为:printf(“下标:%d\n最大值:%d”, m,max)3. 第三行改为:int c;第五行改为:printf(“c=%d”,c);4. 第一行改为:float sum(float x, float y );第四行改为:return(z);第八行:float c;第十一行:printf("\nSum is %f",c);5. 第2、3行:{ int t;t=*p1;*p1=*p2;*p2=t;第9行:q1=&a,q2=&b;第10行:if(a<b) swap(q1,q2);第11行:printf("\n%d,%d\n",*q1,*q2);6.程序读入20个整数,统计非负数个数,并计算非负数之和.#include “stdio.h”main(){int i, a[20], s , count ;s=count=1; s=count=0;for( i=1; i<20; i- -) for(i=0;i<20;i--)scanf(“%d”, a[i] );scanf(“%d”,&a[i]);for(i=0;i<20;i++){if(a[i]<0)break; continue;s +=a[i];count++;}printf(“s=%f count=%f\n”, s, count);}printf(“s=%d count=%d\n”,s,count);7. x , y两个数中,让x中存较大的数,y存较小的数#include<stdio.h>main( ){int x , y=200 , z=0;x=180;if ( x<y)z=x; x=y; y=z; { z=x;x=y;y=z;}printf(“x=%d,y=%d\n”,&x,&y);}printf(“x=%d,y=%d\n”,x,y); }8. 从键盘输入整数x的值,并输出y的值.main(){ float x,y; 正确的: int x; float y;scanf(“%d”,&x);y=3.5+x;printf(“y=%d”); printf(“y=%f”,y);}9. 从1加到100,并输出.Main ( ){int i , sumi=1;While ( i<=100 ){ sum=sum*i;i++ ;}printf ( “%c”, sum )}10、求一个4×4矩阵的对角线元素之和main( ){int a[4][4], sum=0;int i,j;printf(“Enter data:\n”);for(i=0;i<=4;I++)for(j=0,j<=4;j++)scanf(“%d”,&a[i][j]);for(i=0;i<4;I++)for(j=0;j<4;j++)sum=sum+a[i][j];printf(“sum=%5d\n”,sum);}12.求1+2+3+4+……n的值。

c程序改错

c程序改错
printf("\n");
}
getch();
}
答案:
1). int i,j;
2). for(i=0; i < 3; i++)
3). array[i][j]=array[i][j]*5;
第5题 (10.0分)
/*------------------------------------------------------
━━━━━━━━━━━━━━━
第1题 (10.0分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
3). c=*r;
第4题 (10.0分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺
序从小到大进行排序,并删除重复的字符。
------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
3500 4000 4500
------------------------------------------------------*/

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语言期末考试复习资料-程序改错部分试题及答案

C语言期末考试复习资料-程序改错部分试题及答案

/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求如下表达式:1 1 1S = 1 + —— + ——— + ...... + ———————1+2 1+2+3 1+2+3+......+n ------------------------------------------------------*/#include <stdio.h>main(){int n;double fun();printf("Please input a number:");/**********FOUND**********/print("%d",n) ;printf("%10.6f\n",fun(n));}/**********FOUND**********/fun(int n){int i,j,t;double s;s=0;/**********FOUND**********/while(i=1;i<=n;i++);{t=0;for(j=1;j<=i;j++)t=t+j;/**********FOUND**********/=s+1/t;}return s;}/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:判断m是否为素数,若是返回1,否则返回0。

------------------------------------------------------*/#include <stdio.h>/**********FOUND**********/void fun( int n){int i,k=1;if(m<=1) k=0;/**********FOUND**********/for(i=1;i<m;i++)/**********FOUND**********/if(m%i=0) k=0;/**********FOUND**********/return m;}void main(){int m,k=0;for(m=1;m<100;m++)if(fun(m)==1){printf("%4d",m);k++;if(k%5==0) printf("\n");}}/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。

C语言程序改错题

C语言程序改错题

第1题程序改错功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面;例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”;------------------------------------------------------/ include <>include <>include <>void fun char s, char t{/FOUND/int i;sl = strlens;for i=0; i<sl; i++/FOUND/ti = ssl-i;for i=0; i<sl; i++tsl+i = si;/FOUND/t2sl = "0";}main{char s100, t100;printf"\nPlease enter string s:"; scanf"%s", s;funs, t;printf"The result is: %s\n", t;}答案:1. int i,sl;2. ti = ssl-i-1;3. t2sl = '\0'; 或 t2sl = 0;第2题程序改错功能:求出以下分数序列的前n项之和;和值通过函数值返回main 函数;2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:;------------------------------------------------------/ include <>include <>/FOUND/fun int n{int a, b, c, k; double s;s = ; a = 2; b = 1;for k = 1; k <= n; k++{/FOUND/s = doublea / 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 funint n2. s = s + doublea / b; 或 s += doublea / b; 或 s += a /doubleb; 或 s=s+a/doubleb;3. return s;第3题程序改错功能:读入一个整数m 5≤m≤20 ,函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序;例如:若输入整数7,则应输出:3 10 17 28 32 36 47;------------------------------------------------------/include ""include <>sortpb int n, int a{/FOUND/int i, j, p, tfor j = 0; j < n-1 ; j++{p = j;for i = j + 1; i < n ; i ++/FOUND/if ap > aj p = i;/FOUND/if p == j{t = aj;aj = ap;ap = t;}}}double rnd{static t = 29, c = 217, m = 1024, r = 0;r = rt + c %m; return double r/m ;}getarr int n, int x{int i;for i = 1; i <= n; i++, x++ x = int 50rnd ;}putarr int n, int z{int i;for i = 1; i <= n; i++, z++{printf "%4d", z ;if i%10 printf "\n" ;}printf"\n";}main{int aa20, n;printf "\nPlease enter an integer number between 5 and 20: " ; scanf "%d", &n ;getarr n, aa ;printf "\n\nBefore sorting %d numbers:\n", n ; putarr n, aa ; sortpb n, aa ;printf "\nAfter sorting %d numbers:\n", n ; putarr n, aa ;}答案:1. int i, j, p, t;2. if ap > ai p = i;3. if p = j第4题程序改错--------------------------------------------------------功能:以下程序能求出11+22+......+nn<=1000中满足条件的最大的n;------------------------------------------------------/include <>include ""main{int n,s;/FOUND/s==n=0;/FOUND/whiles>1000{++n;s+=nn;}/FOUND/printf"n=%d\n",&n-1;}答案:1. s=n=0;2. whiles<=10003. printf"n=%d\n",n-1;第5题程序改错-------------------------------------------------------- 功能:求出a所指数组中最大数和次最大数规定最大数和次最大数不在a0和a1中,依次和a0、a1中的数对调;例如:数组中原有的数:7、10、12、0、3、6、9、11、5、8, 输出的结果为:12、11、7、0、3、6、9、10、5、8;------------------------------------------------------/ include <>include <>define N 20void fun int a, int n{int k,m1,m2,max1,max2,t;max1=max2= -32768; m1=m2=0;for k = 0; k < n; k++if ak>max1{max2 = max1; m2 = m1;max1 = ak; m1 = k;}/FOUND/else if ak>max1{max2 = ak; m2 = k; }/FOUND/t = a0;am1=a0;am1 = t;/FOUND/t = a1;am2=a1;am2 = t;}main{int bN={7,10,12,0,3,6,9,11,5,8}, n=10, i;for i = 0; i<n; i++printf"%d ",bi;printf"\n";fun b, n;for i=0; i<n; i++printf"%d ",bi;printf"\n";}答案:1. else if ak>max22. t = a0; a0=am1; am1 = t;3. t = a1; a1=am2; am2 = t;第6题程序改错-------------------------------------------------------- 功能:读入一个整数k2≤k≤10000,打印它的所有质因子即所有为素数的因子;例如:若输入整数:2310,则应输出:2、3、5、7、11;请改正程序中的语法错误,使程序能得出正确的结果;------------------------------------------------------/ include ""include <>/FOUND/isPrimeinteger n{int i, m;m = 1;for i = 2; i < n; i++/FOUND/if n%i{m = 0;break;}/FOUND/return n ;}main{int j, k;printf "\nPlease enter an integer number between 2 and 10000: " ; scanf "%d", &k ;printf "\n\nThe prime factors of %d is are :", k ;for j = 2; j <= k; j++if k%j&& IsPrimej printf "\n %4d", j ;printf"\n";}答案:1. IsPrimeint n2. ifn%i3. return m ;第7 题程序改错--------------------------------------------------------功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素;------------------------------------------------------/include <>main{int a10;void input;void output;void max_min;inputa,10;max_mina,10;outputa,10;}void inputint arr,int n{int p,i;p=arr;printf"please enter 10 integers:\n";fori=0;i<n;i++/FOUND/scanf"%d",p;}void max_minint arr,int n{int min,max,p,t;min=max=arr;forp=arr+1;p<arr+n;p++/FOUND/ifp<maxmax=p;else ifp<min min=p;t=arr;arr=min;min=t;/FOUND/ifmax=arr max=min;t=arr+n-1;arr+n-1=max;max=t;}void outputint arr,int n{int p,i;p=arr;printf"The changed array is:\n";/FOUND/whilei=0;i<n;i++printf"%3d",p++;printf"\n";}答案:1. scanf"%d",p ++; 或 scanf"%d",arri; 或 scanf"%d",p+i; 或 scanf"%d",arr+i;2. ifp>max 或 ifmax<p3. if max == arr4. fori=0;i<n;i++ 或 fori=0;n>i;i++ 或 forp=arr;p<arr+n; 或 fori=0;i<=n-1;i++ 或fori=0;n-1>=i;i++ 或 forp=arr;p<=arr+n-1; 或 forp=arr;arr+n-1>=p;第8题程序改错--------------------------------------------------------功能:求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL;例如:当字符串中的内容为:"abcdabfabcdx",t中的内容为:"ab"时,输出结果应是:abcdx;当字符串中的内容为:"abcdabfabcdx",t中的内容为:"abd"时,则程序输出未找到信息:not found;------------------------------------------------------/include <>include <>include <>char fun char s, char t{char p , r, a;/FOUND/a == NULL;while s{p = s;r = t;while r/FOUND/if r == p{r++;p++;}elsebreak;/FOUND/if r ='\0' a = s;s++;}return a ;}main{char s100, t100, p;printf"\nPlease enter string S :"; scanf"%s", s ;printf"\nPlease enter substring t :"; scanf"%s", t ;p = fun s, t ;if pprintf"\nThe result is : %s\n", p;elseprintf"\nNot found \n" ;}答案:1. a = NULL;2. if r == p3. if r == '\0' a = s;第9题程序改错-------------------------------------------------------- 功能:从m个学生的成绩中统计出高于和等于平均分的学生人数, 此人数由函数值返回;平均分通过形参传回,输入学生成绩时,用-1结束输入,由程序自动统计学生人数;例如:若输入 8 名学生的成绩,输入形式如下:60 72 98 88 64 -1结果为:The number of students :4Ave = ;------------------------------------------------------/include <>include <>define N 20int fun float s, int n, float aver{float av, t ; int count , i;count = 0; t=;for i = 0; i < n; i++ t += s i ;av = t / n; printf "ave =%f\n",av ;for i = 0; i < n; i++/FOUND/if s i < av count++;/FOUND/aver = av;/FOUND/return count}main{float a, s30, aver;int m = 0;printf "\nPlease enter marks -1 to end:\n ";scanf"%f",&a ;while a>0{sm = a;m++;scanf "%f", &a ;}printf "\nThe number of students : %d\n" , fun s, m, &aver ; printf "Ave = %6.2f\n",aver ;}答案:1. if s i >= av count++;2. aver = av;3. return count;第10题程序改错--------------------------------------------------------功能:根据以下公式求π值,并作为函数值返回;例如:给指定精度的变量eps输入时,应当输出Pi=;π 1 1 2 1 2 3 1 2 3 4— = 1 + — + — x — + — x — x — + — x — x — x — + ...2 3 3 5 3 5 7 3 5 7 9------------------------------------------------------/include <>double fundouble eps{double s,t;int n=1;s=;t=1;/FOUND/whilet<=eps{s+=t;/FOUND/t=n/2n+1t;n++;}/FOUND/return s;}main{double x;scanf"%lf",&x;printf"\neps=%lf,Pi=%lf\n\n",x,funx;}答案:1. whilet>eps 或 whileeps<t 或 whilet>=eps 或 whileeps<=t 或 while t>eps 或 while eps<t 或 while t>=eps 或 while eps<=t2. t=tn/2n+1; 或 t=n/2n+1t; 或 t=n/2n+t; 或 t=n/n+1t; 或 t=n/n+t; 或 t=n/n+t;3. return 2 s ; 或 return 2s; 或 return2s; 或 return s2; 或 returns2;第11题程序改错--------------------------------------------------------功能:实现两个字符串的连接;例如:输入dfdfqe和12345时,则输出dfdfqe12345.------------------------------------------------------/include <>main{char s180,s280;void scatchar s1,char s2;getss1;getss2;scats1,s2;putss1;}void scat char s1,char s2{int i=0,j=0;/FOUND/whiles1i= ='\0'i++;/FOUND/whiles2j= ='\0'{/FOUND/s2j=s1i;i++;j++;}/FOUND/s2j='\0';}答案:1. while s1i = '\0' 或 whiles1i 或 while s1i = 02. while s2j = '\0' 或 whiles2j 或 while s2j = 03. s1i=s2j;4. s1i='\0'; 或 s1+i='\0'; 或 s1i=0;第12题程序改错-------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积;例如:输入圆的半径值:输出为:s = ;------------------------------------------------------/ include <>include <>/FOUND/double fun r{double s;/FOUND/s=1/2 r r;/FOUND/return r;}main{float x;printf "Enter x: ";scanf "%f", &x ;printf " s = %f\n ", fun x ;}答案:1. float funfloat r 或 double funfloat r 或 double fundouble r2. s=2 r r;3. return s;第13题程序改错--------------------------------------------------------功能:利用二维数组输出如图所示的图形;------------------------------------------------------/include <>include <>/FOUND/define N= 7main{char aNN;int i,j,z;fori=0;i<N;i++forj=0;j<N;j++/FOUND/aij=;z=0;fori=0;i<N+1/2;i++{forj=z;j<N-z;j++aij='';z=z+1;}z=0;fori=N+1/2;i<N;i++{z=z-1;forj=z;j<N-z;j++aij='';}fori=0;i<N;i++{forj=0;j<N;j++/FOUND/printf"%d",aij;printf"\n";}}答案:1. define N 72. aij=' ';3. z=z-1; 或 z--; 或 z=-1+z;4. printf"%c",aij;第14题程序改错-------------------------------------------------------- 功能:读取7个数1-50的整数值,每读取一个值,程序打印出该值个数的;------------------------------------------------------/ include <>main{int i,a,n=1;/FOUND/whilen<7{do{scanf"%d",&a;}/FOUND/whilea<1&&a>50;/FOUND/fori=0;i<=a;i++printf"";printf"\n";}}答案:1. whilen<=7 或 whilen<82. whilea<1||a>50; 或 whilea>50||a<1;3. fori=1;i<=a;i++。

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语言改错题真题解析(30题)

C语言改错题真题解析(30题)

1.改错题(30题)第一题:#include<stdio.h>void main(){int a,b,c;/**/ float f; /**/ f为小数类型,具体下方f的输出用%f可看出为float 类型clrscr();printf("Please input a b :");scanf("%d%d",/**/&a,&b/**/);变量a,b必须取地址,除非数组名不取地址,因数组名就是地址f=/**/ (float)a/b; /**/ a,b均为整数,要获得结果的小数部分必须进行强制类型转换c=(int)((f-(int)f)*10);printf("\n%f %d\n",f,c);getch();}第二题:#include <stdio.h>void find(/**/int m /**/)参数类型必须指出,具体main函数中调用find函数的参数k为int 类型,所以对应的参数m也是int类型{int a1,a2;a1=m%10;求m的个位a2=m/10;求m的十位if(m%3==0 &&(/**/ a1==4 || a2==4 /**/))如果m能被3整除且个位或者十位是4 printf("%d\n",m);则输出m}void main(){ int k;for(k=10;k<=99;k++)k从10到99,一一尝试/**/ find( k ) /**/;调用函数find,函数的作用是寻找满足条件的数getch();}第三题:#include<stdio.h>void main(){/**/ int a,tag; /**/语法错误c语言的变量区分大小写,程序中用到小写tag,此处改为小写int num1=0,num2=0; num1和num2分别为大于个数和小于个数的计数器,程序开始归零clrscr();printf("please input numbers :");scanf("%d",/**/ &a /**/);语法错误变量a需取地址,输入第一个数tag=a;将第一个数放入tag中while(a)程序以0结束,循环的条件为:只要不输入0{ scanf("%d",&a);程序循环输入数字,存入a/**/ if(!a) /**/ continue;逻辑错误,程序执行的条件,a不为0else if(a<tag) num1++;如果a中数比tag小,计数器num1增加1else if(a>tag) num2++;如果a中数比tag大,计数器num2增加1}printf("\n%d %d\n",num1,num2);getch();}第四题:#include <stdio.h>long int fsum(int n) fsum函数用于求阶乘{long int k;if(n==1)/**/ k=1 /**/;逻辑错误,1的阶乘为1elsek=n*fsum(n-1);n的阶乘为n-1的阶乘乘以nreturn (/**/ k /**/);逻辑错误,运算结果在k中}void main(){ int i;long int sum;sum=0;for(i=1;i<=9;/**/ i++,i++ /**/)语法错误for语句格式不符sum+=fsum(i);printf("sum=%ld\n",sum);getch();}第五题:#include<stdio.h>void main(){ int i,a=0;/**/char c1,c2; /**/ 语法错误c1,c2为字符类型,程序中用getchar()获取clrscr();printf("Enter an 8 bit binary number :");c2=getchar();/**/ for(i=1;i<=7;i++) /**/语法错误for语句中间为;{ c1=getchar();a=a*2+c1-'0';}/**/ if (c2=='1') /**/ a=(-1)*a;如果依照题意c2=='1',a是负数printf("\n%d \n",a);getch();}第六题:#include<stdio.h>void main( ){int i,n;/**/ n = 0; /**/n为计数器,从0开始for(i=10;i<=100;i++)判断10-99是否是对称数if(i/10==i%10) i/10得到十位,i%10得到个位,若相等则是对称数{printf("%5d",i);输出对称数n++;计数器增加1if(/**/ n%9==0 /**/)语法错误表示相等的关系用双等号;printf("\n");9个数一行输出,换行}for(i=100;i<=999;i++)判断100-999是否是对称数if(/**/ i/100==i%10 /**/) i/100得到百位,i%10得到个位,若相等则是对称数{printf("%5d",i);n++;if(n%9==0)printf("\n");}getch();}第七题:#include <stdio.h>void main(){/**/ int a[10]; /**/语法错误数组下标用中括号;int i,j,k,x;printf("Enter 10 numbers:");scanf("%d",/**/ &x /**/);语法错误x需取地址;a[0]=x;for(k=1;k<=9;k++){ scanf("%d",&x);for(i=0;i<k;i++)if (a[i]>x) break;if(i<k)for(j=k;j>i;j--) a[j]=a[j-1];a[i]=x;}/**/ for(i=0;i<10;i++) /**/逻辑错误,数组下标从0开始printf("%d ",a[i]);printf("\n");getch();}第八题:#include <stdio.h>#include <math.h>int fun( /**/ float a,float b,float c /**/)语法错误函数三个参数的类型此处必须列出;{float t;int mk = 0;if(c<a){ t = a; a = c; c = t;}if(c<b){ t = b; b = c; c = t;}通过以上两次比较将最大的边放入c中if( fabs( c*c - (a*a+b*b)) < 1.0e-8)mk = 1;/**/ return mk; /**/}main(){float a,b,c;printf("Please input three numbers(a b c):\n");scanf("%f%f%f",&a,&b,&c);if(/**/ fun(a,b,c) /**/== 1)法错误调用函数三个参数之间用,分隔;printf("Yes\n");elseprintf("No\n");getch();}第9题:基本思路:每一趟从待排序的数列中选出值最小(或最大)的数据,将它与当前待排序的子数列的最后一个数据进行交换,直到全部数据排序完毕。

C语言程序改错练习

C语言程序改错练习
printf("\40: The a & b(decimal) is %d \n",&b);
/**********FOUND**********/
b|=7
printf("\40: The a & b(decimal) is %d \n",b);
}
答案:
=======(答案1)=======
int a,b;
main()
{
int a,b;
double x;
/***********FOUND***********/
scanf("%d,%d",a,b);
/***********FOUND***********/
x=2ab/(a+b)(a+b);
/***********FOUND***********/
printf("x=%d\n",x);
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)
printf("%d,%d,%d\n",i,j,k);
}
}
答案:
=======(答案1)=======
------------------------------------------------------*/
#include<stdio.h>
void main()
{
/**********FOUND**********/

c语言改错题型

c语言改错题型

C语言程序设计练习题三、程序改错并得到答案(10分)1. 求 s=1!+4!+7!+ …+(3n+1)!。

程序中有一处错误。

(1) 输入原程序并运行,输入4,记录运行结果,将结果填入答题窗口的①。

(程序名由考生自定)(2) 更正程序中的错误,运行更正后的程序,输入10,记录运行结果,将结果填入答题窗口的②。

#include "stdio.h"main(){ long s,f,n;int I,j;printf("Enter a number: \n");scanf("%ld",&n); s = 0;for (I=1; I<= n; I+=3){ f = 1;for (j=1; j<=I; j++)f = f*I; 改为f=f*js += f; }printf("%ld\n",s); }错误程序的结果为①更正后的结果为②2.已知 f(n)=f(n-1)+2f(n-2)-5f(n-3), f(0)=1,f(1)=2,f(2)=3, 求 f(0)+f(1)+……+f(20)。

程序中有一处错误。

(1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的①。

(程序名由考生自定)(2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题窗口的②。

#include "stdio.h"main(){ long f0=1,f1=2,f2=3,f,s,I; s=f0+f1+f2;for (I=1; I<=30应改为I<=20; I++){ f=f2+2*f1-5*f0; s+=f; f0=f1; f1=f2; f2=f;}printf("%ld\n",s);}3. 求解方程 x^2- 7912x +12976 = 0 的最大实根。

程序中有一处错误。

C语言程序改错题及答案

C语言程序改错题及答案

程序调试1、#include <stdio.h>#include <string.h>void fun(char *s,char *t){int i,sl;sl=strlen(s);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(){char s[100],t[100];scanf("%s",s);fun(s,t);printf("%s",t);}2、#include <stdio.h>void main(){ int n,i;scanf("%d",&n);/****** 1 ******/i=1;// i=2; while(n>1)if(n%i==0) {printf("%d\t",i);n/=i;}else/******** 2 *******/ n++;// i++;}3、#include <stdio.h>#include <math.h>void main(){ int n,s=0;scanf("%d",&n);n=fabs(n);/******** 1 *******/while(n>1) { // 1}n 2}n!=0 s=s+n%10;/******** 2 ******/n=n%10; // n=n/10;}printf("%d\n",s);}4、#include<stdio.h>void itoa(long i,char *s){if(i==0)return;/****** 1 ******/*s = '1'+i%10;//*s = '0'+i%10;itoa(i/10,s-1);}void main(){long n;char str[7]="";scanf("%ld",&n);/****** 2 ******/itoa(n,str+6);// itoa(n,str+5);printf("%s",str);}5、#include <stdio.h>#define N 10void main(){int i,j,min,temp;int a[N]={5,4,3,2,1,9,8,7,6,0};printf("\nThe array is:\n"); /* 输出数组元素 */for (i=0;i<N;i++)printf("%5d",a[i]);for (i=0;i<N-1;i++) /* 排序操作 */{min = i;for (j=i+1; j<N; j++)/****** 1 ******/if (a[min]<=a[j]) min =j; // if (a[min]>=a[j]) /****** 2 ******/temp=a[min]; a[min]=a[j]; a[j]=temp; /* 数据交换 */// temp=a[min]; a[min]=a[i]; a[i]=temp; }printf("\nThe sorted numbers: \n"); /* 输出排序结果 */for (i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}6、#include <stdio.h>void main(){char s1[80],s2[40];int i=0,j=0;printf("\nInput the first string:");scanf("%s",s1);printf("\nInput the second string:");scanf("%s",s2);while (s1[i] !='\0')/****** 1 ******/i+1;// i= i+1;while (s2[j] !='\0')/****** 2 ******/s1[++i]=s2[++j];/* 拼接字符到s1 */ //s1[i++]=s2[j++];s1[i] ='\0';printf("\nNew string: %s",s1);}}7、#include <stdio.h>void main(){ int i,a,n,t=0;/***** 1 *****/s=0; // int s=0;scanf("%d%d",&a,&n);for(i=1;i<=n;i++) {/******* 2 ******/t=t*10+i; // t=t*10+1;s=s+t;}s=s*a;printf("%d\n",s);}8、#include <stdio.h>#include <math.h>void main(){ float x,eps,s=1,t=1,i=1;scanf("%f%f",&x,&eps);do {/***** 1 *****/t=-t*x/++i;// t = -t * x / i++;s+=t;/***** 2 *****/} while(fabs(t)<eps) // while(fabs(t)>=eps) ; printf("%f\n",s);}9、#include <stdio.h>void main(){ float x,max,min; int i;/******** 1 *******/for(i=0;i<=10;i++) { // i<10循环的个数不对,如果i<=10话则i=1;那下面的应改为i==1scanf("%f",&x);/******* 2 ********/if(i=1) { max=x;min=x;} // i==0保证第一次时条件成立if(x>max) max=x;if(x<min) min=x;}printf("%f,%f\n",max,min);}10、. 在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

18套东秦C语言期末考试试题题库

18套东秦C语言期末考试试题题库

18套东秦C语言期末考试试题题库一、选择题答案1 以下程序的输出是st{ x; *y;} *p;dt[4]={ 10203040 };st aa[4]={ 50&dt[0]60&dt[0]60&dt[0]60&dt[0]};{ p=aa;("%d\n"++(p-&));}A) 10B) 11C) 51D) 60你所选择的答案是:*,正确答案是:C ×2 在C语言中,合法的长整型常数是A) OL B) C) & D) D你所选择的答案是:*,正确答案是:A ×3 以下叙述中正确的是A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) 函数必须放在其它函数之前D) 所有被调用的函数一定要在调用之前进行定义你所选择的答案是:*,正确答案是:A ×4 以下选项中合法的用户标识符是A) B) _2 C) 3 D)你所选择的答案是:*,正确答案是:B ×5 有以下程序段n=0p;{("%d"&p);n++;}(p!= &&n&lt3);此处-循环的结束条件是A) P的值不等于并且n的值小于3B) P的值等于并且n的值大于等于3C) P的值不等于或者n的值小于3D) P的值等于或者n的值大于等于3你所选择的答案是:*,正确答案是:D ×6 C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是A)B)C)D)你所选择的答案是:*,正确答案是:B ×7 有以下程序#{ i=0;(i=1;i ("%d\n");}程序编译连接后生成的可执行文件是,若运行时输入带参数的命令行是:1 10&lt回车&gt则运行的结果是:A) 22 B) 17 C) 12 D) 9你所选择的答案是:*,正确答案是:D ×8 下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型你所选择的答案是:*,正确答案是:D ×9 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是型变量和型变量,但不能是型变量C) 它们的运算对象可以是型变量,但不能是型变量和型变量D) 它们的运算对象可以是型变量、型变量和型变量你所选择的答案是:*,正确答案是:D ×10 有以下程序(i=0;i&lt3;i++)(i){ 1: ("%d"i);2: ("%d"i);: ("%d"i);}}执行后输出结果是A)B)C)D)你所选择的答案是:*,正确答案是:A ×11 有以下程序( *a i j){t;(i&){t=a[i];a[i]=a[j];a[j]=t;}}{a[]={123456}i;(a05);(i=0;i&lt6;i++)("%d"a[i]);}执行后的输出结果是A) 6 5 4 3 2 1B) 4 3 2 1 5 6C) 4 5 6 1 2 3D) 1 2 3 4 5 6你所选择的答案是:*,正确答案是:A ×12 以下叙述中正确的是A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分你所选择的答案是:*,正确答案是:A ×13 以下选项中可作为C语言合法整数的是A)BB)C)0D)x2a2你所选择的答案是:*,正确答案是:C ×14 有以下程序{ a; c=10;f=; x;a=f/=c*=(x=);("%d %d % %\n"acfx);}程序运行后的输出结果是A)1 65 1B)1 65C)1 65D)2 65你所选择的答案是:*,正确答案是:B ×15 设变量x为型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*+/;B)x=(x*+)/;C)x=()(x*+)/;D)x=(x/+)*;你所选择的答案是:*,正确答案是:C ×16 有以下程序{ k=4n=0;( ; n { n++;(n%3!=0) ;k--; }("%d%d\n"kn);}程序运行后的输出结果是A)11B)22C)33D)44你所选择的答案是:*,正确答案是:C ×17 有以下程序( *a *b){ a=b; (*a)++; }{ c1='A'c2='a'*p1*p2;p1=&c1; p2=&c2; (p1p2);("%c%c\n"c1c2);}程序运行后的输出结果是A)AbB)aaC)AaD)Bb你所选择的答案是:*,正确答案是:A ×18 以下不能正确定义二维数组的选项是A) a[2][2]={{1}{2}};B) a[][2]={1234};C) a[2][2]={{1}23};D) a[2][]={{12}{34}};你所选择的答案是:*,正确答案是:D ×19 以下能正确定义一维数组的选项是A) [];B)# N[N];C) [0];D) N=;[N];你所选择的答案是:*,正确答案是:B ×20 有以下程序( ){x=,y=;(“%2d%2d\n”xy);}执行后输出结果是A) 1001 B) 0212 C) 10 D) 0210你所选择的答案是:*,正确答案是:C ×21 有以下程序( ){x=0y=5z=3;(z--&gt0&&++x&lt5) y=y-1;("%d%d%d\n"xyz);}程序执行后的输出结果是A) 320 B) 32-1 C) 43-1 D) 5-2-5你所选择的答案是:*,正确答案是:B ×22 有以下程序( ){ in=0;(i=2;i&lt5;i++){{ (i%3) ;n++;} (!i);n++;}(“n=%d\n”n);}程序执行后的输出结果是A) n=5 B) n=2 C) n=3 D) n=4你所选择的答案是:*,正确答案是:D ×23 有以下程序( ){*p[10]={"""""""""cd"};("%d\n"(p[4]));}执行后输出结果是A) 2 B) 3 C) 4 D) 5你所选择的答案是:*,正确答案是:A ×24 结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务B)只能完成部分复杂的任务C)只能完成符合结构化的任务D)只能完成一些简单的任务你所选择的答案是:*,正确答案是:C ×25 有以下定义语句ab; w; c;若各变量已正确赋值,则下列选项中正确的表达式是A)a=a+b=b++B)w%()a+b)C)(c+w)%()aD)w=a==b;你所选择的答案是:*,正确答案是:C ×26 有以下程序{ a=b=;("%d\n"ab);}程序运行后的输出结果是A)错误信息B)C)D)你所选择的答案是:*,正确答案是:B ×27 下列条件语句中,功能与其他语句不同的是A) (a) ("%d\n"x); ("%d\n"y);B) (a==0) ("%d\n"y); ("%d\n"x);C) (a!=0) ("%d\n"x); ("%d\n"y);D) (a==0) ("%d\n"x); ("%d\n"y);你所选择的答案是:*,正确答案是:D ×28 已有定义: a[]=""b[]={'x''y''z'};以下叙述中正确的是A)数组a和b的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对你所选择的答案是:*,正确答案是:C ×29 以下叙述中正确的是A)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命令C)宏名必须用大写字母表示D)宏替换不占用程序的运行时间你所选择的答案是:*,正确答案是:D ×30 以下与函数(fp0L_)有相同作用的是A)(fp)B)(fp)C)(fp)D)(fp)你所选择的答案是:*,正确答案是:D ×31 有以下程序# f(x) (x*x){i1 i2;i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ;("%d%d\n"i1i2);}程序运行后的输出结果是A)64 28 B)4 4 C)4 3 D)64 64你所选择的答案是:*,正确答案是:C ×32 以下不合法的用户标识符是A)j2_B)C) 4dD) _8_你所选择的答案是:*,正确答案是:C ×33 若有定义: x=; a=1b=3c=2;则正确的语句是A)(x){ : ("*\n");: ("**\n"); }B) (()x);{ 1: ("*\n");2: ("**\n");}C) (a+b){ 1: ("*\n");2+1: ("**\n");}D) (a+b){ 1: ("*\n");c: ("**\n");}你所选择的答案是:*,正确答案是:C ×34 要求通过循环不断读入字符,当读入字母N时结束循环若变量已正确定义,以下正确的程序段是A)((ch=)!='N') (“%c”ch);B)(ch=!='N') (“%c”ch);C)(ch===N') (“%c”ch);D)((ch=)=='N') (“%c”ch);你所选择的答案是:*,正确答案是:A ×35 有以下程序{is=0t[]={123456789};(i=0;i&lt9;i+=2) s+=*(t+i);("%d\n"s);}程序执行后的输出结果是A)45B)20C)25D)36你所选择的答案是:*,正确答案是:C ×36 下列叙述中正确的是________A)每个C程序文件中都必须有一个函数B)在C程序中函数的位置是固定的C)C程序可以由一个或多个函数组成D)在C程序的函数中不能定义另一个函数你所选择的答案是:*,正确答案是:D ×37 在嵌套使用语句时,C语言规定总是________ A)和之前与其具有相同缩进位置的配对B)和之前与其最近的配对C)和之前与其最近的且不带的配对D)和之前的第一个配对你所选择的答案是:*,正确答案是:D ×38 有以下程序{ i;(i=1;i&lt=40;i++){((i++%5==0) && (++i%8=0))("%d"i)}("\n")}执行后的输出结果是________A)5 B)24 C)32 D)40你所选择的答案是:*,正确答案是:C ×39 有以下程序{s[]= "";s+=2;("%d\n"s[0]);}执行后的结果是________A)输出字符a的码B)输出字符c的码C)输出字符cD)程序出错你所选择的答案是:*,正确答案是:D ×40 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对你所选择的答案是:*,正确答案是:A ×41 以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的文件你所选择的答案是:*,正确答案是:B ×42 有以下程序# ""{ x=;("%d\n"++x);}程序运行后的输出结果是A)12B)11C)10D)9你所选择的答案是:*,正确答案是:C ×43 有以下程序# ""{ s;("%d"&s);(s&gt0){ (s){ 1:("%d"s+5);2:("%d"s+4); ;3:("%d"s+3);:("%d"s+1);;}("%d"&s);}}运行时,若输入1 2 3 4 5 0&lt回车&gt,则输出结果是A)B)C)D)你所选择的答案是:*,正确答案是:A ×44 有以下程序# ""{ s[]="xy\08s34f4w2";in=0;(i=0;s[i]!=0;i++)(s[i]&gt='0'&&s[i]&lt='9') n++;("%d\n"n);}程序运行后的输出结果是A)0B)3C)7D)8你所选择的答案是:*,正确答案是:B ×45 若i和k都是类型变量,有以下语句(i=0k=-1;k=1;k++) ("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环你所选择的答案是:*,正确答案是:D ×46 有以下程序# ""{ a[30]b[30];("%s"a);(b);("%s\n %s\n"ab);}程序运行时若输入:? I &lt回车&gt则输出结果是A) ?B)? IC) ? ID) ?你所选择的答案是:*,正确答案是:B ×47 设fp已定义,执行语句fp=("""w");后,以下针对文本文件操作叙述的选项中正确的是A)写操作结束后可以从头开始读B)只能写不能读C)可以在原有内容后追加写D)可以随意读和写你所选择的答案是:*,正确答案是:B ×48 以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题你所选择的答案是:*,正确答案是:C ×49 以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整数,实型变量只能存放浮点数你所选择的答案是:*,正确答案是:B ×50 有以下定义: a; b; xy;则以下选项中正确的表达式语句是A)a%()(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x你所选择的答案是:*,正确答案是:B ×51 若有定义语句 a b; x;则下列选项中没有错误的是A)(x%2){ 0: a++; ;1: b++; ;: a++; b++;}B)(()x/{ 0: a++; ;1: b++; ;: a++; b++;}C)(()x%2){ 0: a++; ;1: b++; ;: a++; b++;}D)(()(x)%2){ : a++; ;: b++; ;: a++; b++;}你所选择的答案是:*,正确答案是:B ×52 有以下程序#&&gt{ y=10;(y--);("y=%d\n"y);}程序执行后的输出结果是A)y=0B)y=-1C)y=1D)构成无限循环你所选择的答案是:*,正确答案是:B ×53 有以下程序#& h&gt{ s[]="";("%c\n"*s+2);}程序运行后的输出结果是A)B)字符t的码值C)tD)出错你所选择的答案是:*,正确答案是:C ×54 有以下程序#&&gtf( x);{ n=1m;m=f(f(f(n)));("%d\n"m);}f( x){ x*2;}程序运行后的输出结果是A)1B)2C)4D)8你所选择的答案是:*,正确答案是:D ×55 下列定义数组的语句中,正确的是A) N=10;x[N];B)# N 10x[N];C) x[010];D) x[];你所选择的答案是:*,正确答案是:B ×56 若要定义一个具有5个元素的整型数组,以下错误的定义语句是A) a[5]=﹛0﹜;B) b[]={00000};C) c[2+3];D) i=5d[i];你所选择的答案是:*,正确答案是:D ×57 有以下程序(函数只对下标为偶数的元素进行操作) #&&gt(*a n){ ijkt;(i=0;i&-1;i+=2){k=i;(j=i;j&;j+=2)(a[j]&[k])k=j;t=a[i];a[i]=a[k];a[k]=t;}}{ aa[10]={1234567}i;(aa7);(i=0;i&lt7;i++)("%d"aa[i]);("\n");}程序运行后的输出结果是A)7254361B)1634527C)7654321D)17356;21你所选择的答案是:*,正确答案是:A ×58 有以下程序#&&gt{ x=1;x+=1; x;}{ is=1;(i=1;i&lt=5;i++)s+=;("%d\n"s);}程序运行后的输出结果是A)11B)21C)6D)你所选择的答案是:*,正确答案是:B ×59 有以下程序#&&gt#&&gt{ *a*b*c;a=b=c=(*)(());*a=1;*b=2*c=3;a=b;("%d%d%d\n"*a*b*c);}程序运行后的输出结果是A)333B)223C)123D)113你所选择的答案是:*,正确答案是:A ×60 有以下程序#&&gt{ stA=10; B=6;s=(A);t=(B);("%d%d\n"st);}在VC6平台上编译运行,程序运行后的输出结果是A)24B)44C)48D)106你所选择的答案是:*,正确答案是:C ×二、填空题1 下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空{ i x y=1;;(_______){ y=0; ;};}你所选择的答案是:,正确答案是:x%i==0 ,×2 若已知a=10,b=20,则表达式!a&的值为( )你所选择的答案是:,正确答案是:1 ,×3 有以下语句段n1=10n2=20;(“ ”);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空n1=10n2=20你所选择的答案是:,正确答案是:n1=%d\nn2=%d ,×4 以下程序运行后的输出结果是{a=3b=4c=5t=99;(b&&&a&) t=a;a=c;c=t;(a&&&b&) t=b;b=a;a=t;("%d%d%d "abc);}你所选择的答案是:,正确答案是:,×5 # ""{ c1c2;("%d"&c1);c2=c1+9;("%c%c\n"c1c2);}若程序运行时从键盘输入48&lt回车&gt,则输出结果为你所选择的答案是:,正确答案是:09 ,×6 己知a所指的数组中有N个元素函数的功能是,将下标k(k&gt0)开始的后续元素全部向前移动一个位置请在处填空( a[N] k){ i;(i=k;i&gt=0;k--)a[]=a[k];}你所选择的答案是:,正确答案是:k-1 ,×7 有以下程序,请在处填写正确语句,使程序可正常编译运行# ""( ab);{ xy(*p);。

C语言程序改错基本题库完整

C语言程序改错基本题库完整

石油化工学院12级复习题程序改错一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1.求1234nmain(){ long int sum;int n,i=1;scanf("%d",n);printf(“\n”);while(i<n){ sum=sum*i;i++;}printf("sum=%d",sum);}2.求一个数组中最大值及其下标。

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

sum(x,y){ float z;z=x+y;return;}main(){ float a,b;int c;scanf("%f,%f",&a,&b);c=sum(a,b);printf("\nSum is %f",sum);}5.用指针作函数参数,对输入的两个整数按大小顺序输出。

swap(int *p1,*p2){ int *p;*p=*p1;*p1=*p2;*p2=*p;}main(){ int a,b;int *q1,*q2;scanf("%d,%d",&a,&b);&q1=a,&q2=b;if(a<b) swap(*q1,*q2);printf("\n%d,%d\n",q1,q2);}前五题答案:1.sum应初始化即加入sum=1第四行改为:scanf(“%d”,&n);第六行改为:while(i<=n)第十行改为:printf("sum=%ld",sum);2. 第四行改为:for(j=0;j<5;j++)第五行改为:scanf(“%d”,&a[j]);第七行改为:for(j=0;j<5;j++)第八行改为:if(max<a[j])第十三行改为:printf(“下标:%d\n最大值:%d”, m,max)3. 第三行改为:int c;第五行改为:printf(“c=%d”,c);4. 第一行改为:float sum(float x, float y );第四行改为:return(z);第八行:float c;第十一行:printf("\nSum is %f",c);5. 第2、3行:{ int t;t=*p1;*p1=*p2;*p2=t;第9行:q1=&a,q2=&b;第10行:if(a<b) swap(q1,q2);第11行:printf("\n%d,%d\n",*q1,*q2);6.程序读入20个整数,统计非负数个数,并计算非负数之和.#include “stdio.h”main(){int i, a[20], s , count ;s=count=1; s=count=0;for( i=1; i<20; i- -) for(i=0;i<20;i--)scanf(“%d”, a[i] );scanf(“%d”,&a[i]);for(i=0;i<20;i++){if(a[i]<0)break; continue;s +=a[i];count++;}printf(“s=%f count=%f\n”, s, count);}printf(“s=%d count=%d\n”,s,count);7. x , y两个数中,让x中存较大的数,y存较小的数#include<stdio.h>main( ){int x , y=200 , z=0;x=180;if ( x<y)z=x; x=y; y=z; { z=x;x=y;y=z;}printf(“x=%d,y=%d\n”,&x,&y);}printf(“x=%d,y=%d\n”,x,y); }8. 从键盘输入整数x的值,并输出y的值.main(){ float x,y; 正确的: int x; float y;scanf(“%d”,&x);y=3.5+x;printf(“y=%d”); printf(“y=%f”,y);}9. 从1加到100,并输出.Main ( ){int i , sumi=1;While ( i<=100 ){ sum=sum*i;i++ ;}printf ( “%c”, sum )}10、求一个4×4矩阵的对角线元素之和main( ){int a[4][4], sum=0;int i,j;printf(“Enter data:\n”);for(i=0;i<=4;I++)for(j=0,j<=4;j++)scanf(“%d”,&a[i][j]);for(i=0;i<4;I++)for(j=0;j<4;j++)sum=sum+a[i][j];printf(“sum=%5d\n”,sum);}12.求1+2+3+4+……n的值。

C语言程序改错基本题库

C语言程序改错基本题库

北京石油化工学院12级复习题程序改错一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1 .求1234nmai n(){ long int sum;int n,i=1;scan f("%d", n);prin “ \n ”);while(i< n){ sum=sum* †i;}†3.求3+4int a=3,b=4;main (){ int a,c;c=a+b;printf( “c=%d');}4. 用一个函数求两个数之和。

}前五题答案:应初始化即加入sum=1第四行改为:scanf( “ %d,&n);第六行改为:while(i<=n)第十行改为:prin tf("sum=%ld",sum);2. 第四行改为:for(j=0;j<5;j++)第五行改为:scanf( “ %d,&a[j]);第七行改为:for(j=0;j<5;j++)第八行改为:if(max<a[j])第十三行改为:printf( "下标:%d\n最大值:%d”3. 第三行改为:int c;第五行改为:printf( “ c=%d' ,c);4. 第一行改为:float sum(float x, float y );i++;}prin tf("sum=%d",sum);}2 .求一个数组中最大值及其下标。

mai n(){ int max,j,m;int a[5];for(j=1;j<=5;j++)scanf( “ %d ,a);第四行改为:return(z);第八行:float c;第 ^一行:prin tf("\nSum is %f',c);5. 第2、3 行:{ int t;t=*p1;*p1=*p2;*p2=t;7. x , y 两个数中,让x中存较大的数,y存较小的数#in clude<>mai n(){int x , y=200 , z=0;x=180;if ( x<y)z=x; x=y; y=z; { z=x;x=y;y=z;} printf( “x=%d,y=%d\n” ,&x,&y);}printf( “x=%d,y=%d\n” ,x,y); }8. 从键盘输入整数x的值,并输出y的值.main (){ float x,y; ______ 正确的: int x; float y;scanf( “ %d,&x);y=+x;printf( "y=%d' ); printf( _____ “y=%f”,y);}9. 从1加到100,并输出.Mai n (){ int i,j,temp,*p;for(i=0; i<n-1; i++)for(j=n-1; j>i; j--)if(data[j]<data[j-1])max=a[0];for(j=1;j<=5;j++)if(max>a[j]){ max=a[j]; m=j;}printf( "下标:%d\n 最大值:%d”,j, max)sum(x,y){ float z;z=x+y;return;}main (){ float a,b;int c;sca nf("%f,%f",&a,&b);c=sum(a,b);prin tf("\nSum is %f",sum);}5 •用指针作函数参数,对输入的两个整数按大小顺序输出。

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

.下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII 值小或相等的字符依次存放到c数组中,形成一个新的字符串。

例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAAD (1)错误: { if (*p<=*q)正确:{ if (*p>=*q)(2)错误:k++正确:k++;2.下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。

y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)例如:m中的值为5,则应输出0.838611。

(1)错误:int j=1;正确:double j=1.0;(2)错误:y+=1/(i * i);正确:y+=j/(i * i);3.下列给定程序中,函数fun的功能是按以下递归公式求函数值。

例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。

(1)错误:fun(int n);正确:fun(int n)(2)错误:if(n=1)正确:if(n==1)4.下列给定程序中函数fun()的功能是计算1/n!的值。

例如:给n输入5,则输出0.008333。

(1)错误:int fun(int n)正确:double fun(int n)(2)错误:result *=n++ ;正确:result *=n-- ;5.下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

例如:输入352,则输出应该是38;若输入328,则输出应该是77。

(1)错误:long k=1;正确:long k=0;(2)错误:while(num)正确:while(num);6.下列给定程序中,函数fun()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第一个字符放在第0位中)。

例如:字符串中的数据为ADFESHDI,则输出应当是AFESDI。

(1)错误: void fun(char s, char t[ ])正确:void fun(char *s, char t[ ])(2)错误: if(i%2=0||s[i]%2!=0)正确:if(i%2==0||s[i]%2!=0)7.下列给定程序中,函数fun()的功能是找出100~n(不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。

(1)错误:k=n;正确:k=i;(2)错误:s[j]=i;正确:s[j++]=i;8.下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。

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

(1)错误: for(i=0; i<n; i++)正确:for(i=0; i<2; i++)(2)错误:k=m;正确:m=k;9.下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。

high由主函数传给fun()函数。

若high的值为100,则函数的值为1060。

(1)错误:ifhigh%j==0正确:if(high%j==0)(2)错误:if(yes==0)正确:if(yes)。

10.下列给定程序中,函数fun()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码降序排序后输出。

例如:输入dafhc,则应输出hfdca。

(1)错误:int fun(char t[ ])赞2011-3-26 01:21 回复LZJJ短小据说哥叫YY1995位粉丝2楼正确:void fun(char t[ ])(2)错误: t[j]=t[i++];正确:t[j]=t[i];11.在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。

下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。

例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。

正确:while(x[i]!=0)(2)错误:sum=sum\c;正确:sum=sum/c;12.下列给定程序中,函数fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。

(1)错误:if((s[i]>= 'A'&&s[i]<= 'Z')&&(s[i]>= 'a'&&s[i]<= 'z')) 正确:if((s[i]>= 'A'&&s[i]<= 'Z')||(s[i]>= 'a'&&s[i]<= 'z'))(2)错误:s[j]= "\0";正确:s[j]='\0';13.下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。

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

(1)错误:for(j=0;j<n-1;j++) ;正确:for(j=0;j<n-1;j++)(2)错误:a[p]=t;正确:a[j]=t;14.下列给定程序中,函数fun()的功能是:在字符串str中找出ASCⅡ码值最小的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

例如,调用fun()函数之前给字符串输入fagAgBDh,调用后字符串中的内容为AfaggBDh。

(1)错误:void fun(char p)正确:void fun(char *p)(2)错误:p=q+i;正确:q=p+i;。

15.下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。

例如输入8名学生的成绩:85 65.5 69 95.5 87 55 62.5 75则高于平均分的学生人数为4(平均分为74.312500)。

(1)错误:int fun(int m)正确:double fun(int m)(2)错误:for(i=1;i<m;i++)正确:for(i=2;i<=m;i++)16.下列给定程序中,fun()函数的功能是:根据形参m,计算下列公式的值。

t=1-1/2+1/3-1/4+…+(-1)(m+1)/m例如,若输入5,则应输出0.783333。

(1)错误:int fun(int m)正确:double fun(int m)正确:for(i=2;i<=m;i++)17.下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。

K的值由主函数传入,若k的值为500,则函数的值为2925。

(1)错误:int fun(long s,long *t)正确:void fun(long s,long *t)(2)错误:s=s%100;正确:s=s/100;18.下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

例如,当s中的数为4576235时,t中的数为4725。

(1)错误:while(k>=2)&&(mc<6)正确:while((k>=2)&&(mc<6))(2)错误:if((k%7=0)||(k%11=0))正确:if((k%7==0)||(k%11= =0))(3)错误:m=k;正确:m=m+k;19.下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。

(1)错误:for (i=0;j<3;j++)正确:for (j=0;j<3;j++)(2)错误:mul=mul*a[i][j];正确:mul=mul*a[i][i];2011-3-26 01:21 回复LZJJ短小据说哥叫YY1995位粉丝3楼20.下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。

例如,若输入"edS,dAd",则输出"EDS,DAD"。

(1)错误:char fun(char tt[])正确:char *fun(char tt[])(2)错误:if((tt[i]>='A')&&(tt[i]<= 'Z'))正确:if((tt[i]>='a')&&(tt[i]<= 'z'))21.下列给定程序中函数fun()的功能是:将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。

高位在低位,低位在高位。

例如当s中的数为25846513时,t中的数为6482。

(1)错误:if(d%2!=0)正确:if(d%2==0)(2)错误:t=d*s1+t;正确:*t=d*s1+*t;22.已知一个数列从0项开始的前3项:0,0,1,以后的各项都是其相邻的前3项之和。

下列给定的程序中,函数fun()的功能是:计算并输出该数列前n项的和sum。

n的值通过形参传入。

例如,当n=10时,程序的输出结果应为96.000000。

(1)错误:for (k=4;k<n;k++)正确:for (k=4;k<=n;k++)(2)错误:s2=s;正确:s2=s;}23.下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

(1)错误:*t=calloc(m,sizeof(STU));正确:t=calloc(m,sizeof(STU));(2)错误:for (i=j=0;i<N;j++)正确:for (i=j=0;i<N;i++)(3)错误:t[k].s=b[j].s;正确:t[k] =b[j];24.下列给定程序中,函数fun()的功能是:将m(1≤m≤10)个字符串反着连接起来,组成一个新串,放入pt所指字符串中,例如:把3个串DEG,ac,df反着串联起来,结果是dfacDEG。

(1)错误:for(k=m;k>0;k--)正确:for(k=m-1;k>=0;k--)(2)错误:pt=j;正确:pt-=j;。

相关文档
最新文档