青大c程序改错题库
08年到10年青岛大学c语言考试试题及答案
08年到10年青岛⼤学c语⾔考试试题及答案学号姓名 b 学院专业级班___2008 春季学期考试时间2008.7 课程名称C 语⾔程序设计A 卷 ?B 卷本试卷共4页,做题前请检查试卷是否缺页。
⼀、判断正误(对的打√,错的打╳,每题1分,共10分)( ) 1. C 语⾔程序中,先定义的函数先执⾏,main 函数最后执⾏ ( ) 2. (int)3.5表达式的值是4 ( ) 3. 逻辑运算符&&和||优先级相同( ) 4. char a=?0?,b=0;变量a 和b 的值相等 ( ) 5. char a=?\0?,b=0; 变量a 和b 的值相等 ( ) 6. i=-3;while(i++);执⾏结束后,i 的值为0( ) 7. int a [10];声明中的10个单元在内存中是连续存放的( ) 8. 函数声明中省略返回值类型时,函数体中可以没有return 语句 ( ) 9. C 语⾔中,⼀个函数可以调⽤其他函数,不能调⽤⾃⼰define ⼆、单项选择(请将答案填在题⽬前的括号内,每题1分,共20分)( ) 1. 下⾯错误的变量名是。
A. A2BB. AHC.ahD.2a ( ) 2. i=0;下⾯表达式值不为0的是A. 5/9*18B. i++C.++iD.i<0&&>0 ( ) 3. 下⾯不属于C 语⾔关键字的是A. intB. switchC.TimeD.break ( ) 4. 有关函数的定义,下⾯错误的是A.函数名必须满⾜标帜符的要求B.函数必须有返回值C.函数可以调⽤⾃⼰D.⼀个函数中可以有多个return 语句 ( ) 5. 下⾯错误的常量是。
A. 23B. 068C.2.3e-5D. 6.7 ( ) 6. 有语句char a[10], *p=”ABCD ”,下⾯正确的语句是A.puts(*p);B.putchar(*p);C.printf(“%s”,*(p+1));D.strcpy(a,*p);( ) 7. 下⾯合法的表达式是A. (a+b)++B.023++C.(a+b)=5D.~7( ) 8. 下⾯是合法字符常量的是。
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语言程序改错基本题库
北京石油化工学院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程序填空改错及答案(可编辑修改word版)
15、结果:52
#include<stdio.h> int fun(int a,int b) { int r,t;
if(a<b) { t=a; a=b; b=t; } r=a%b; while(r!=0) { a=b;
b=r; /*下行有错*/ r=a/b; // r=a%b; } /*下行有错*/ return a; // return b; } main() { int a; a=fun(780,208); printf("%d\n",a); }
#include<stdio.h> void main() {
int num,a,b,c,count=0; /*下行有错*/ while(num=101;num<1000;num++) // for(num=101;num<1000;num++) {
a=num/100; b=num%100/10; c=num%10; /*下行有错*/ if(num+c*100+b*10+a=1333) // if(num+c*100+b*10+a==1333)
if(a%b==0) sum=sum+a/b; } for(i=2;i<=9;i++) if(sum==a*i) /*下行有错 */ count+=i; //count+=1; } printf("%d\n",count); }
7、结果:495.00
#include<stdio.h> float fun(int m, int n) {
c程序改错
}
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语言改错题题库及详解答案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语言改错题题库及详解答案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语言改错题考试题库
--------------------------------------------------------
功能:在一个一维整型数组中找出其中最大的数及其下标。
------------------------------------------------------*/
#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语言期末考试复习资料-程序改错部分试题及答案
/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求如下表达式: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语言程序改错题汇总
程序改错题汇总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*x+x x<0且x≠-3f(x)= x*x+5x 0≤x<10且x≠2及x≠3x*x+x-1 其它13、请编写函数fun,对长度为8个字符的字符串,将8个字符按降序排列。
14、实现交换两个整数的值。
15、读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
16、先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
17、计算数组元素中值为正数的平均值(不包括0)。
18、将s所指字符串中出现的、t1所指子串全部替换成t2所指子字符串,所形成的新串放在w 所指的数组中。
在此处,要求t1和t2所指字符串的长度相同。
19、将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A, z转换为a),其它字符不变。
20、在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),后输出矩阵第一行与第三行元素之积,并在fun()函数中输出。
大学C语言期末考试练习题程序改错(带详解答案)
scanf(“%d”,a); //若 scanf 语句有错误,常见考点有两个:(1)格式声明符号要 与后面欲赋值的变量的类型一致,此题%d 与 a 的类型 int 一致(详见 p69-78);(2)变量 的前面要有地址符号&
{ sum=sum*i; // 若不为 sum 赋初值,则此处无法计算 sum*i。 i++;
} printf("sum=%d",sum); //若 printf 语句有错误,常见考点有 1 个:格式声明符号 要与后面欲输出的变量的类型一致,此题%d 与 sum 的类型 long int 不一致,应改为%ld (详见 p69-78);
第三处改为:if(n%3==0)
第四处改为:sum=sum+n;
8. 求表达式 c ab 的值
#include <stdio.h>
#include <math.h>
int fun(int x, int y);
main()
{ int a,b; float f; scanf(“%d,%d”,a,b); //与改错第 1 题中的 scanf 错误相同 if(ab>0){ // C 语言中乘号不能省略,且用*表示乘法运算 fun(a,b); // 调用带有返回值的函数,应将函数的返回值保存在变量里
略 { if(n%3=0) // = 是赋值符号,用于将右边的值赋给左边的变量;== 是
关系符号,用来判断两个值是否相等 。改错中 if 后面表达式中的赋值符号是常见的 考点。
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语言程序改错一、程序改错共 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语言程序改错基本题库
北京石油化工学院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.用指针作函数参数,对输入的两个整数按大小顺序输出。
s *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) s);第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语言程序改错题及答案
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
青海大学题库c语言程序设计
试卷编号:9478所属语言:C语言试卷总分:1260分共有题型:1种一、程序设计共126题(共计1260分)第1题(分)题号:507 难度:易第1章/*------------------------------------------------【程序设计】--------------------------------------------------功能:编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度。
------------------------------------------------*/#include <>void wwjt();int fun(char *p1){/**********Program**********//********** End **********/}main(){char *p,a[20];int len;p=a;printf("please input a string:\n");gets(p);len=fun(p);printf("The string's length is:%d\n",len);wwjt();}void wwjt(){FILE *IN,*OUT;char *pIN,sin[20];int iOUT,i;pIN=sin;IN=fopen("","r");if(IN==NULL){printf("Please Verify The Currernt Dir..it May Be Changed");}OUT=fopen("","w");if(OUT==NULL){printf("Please Verify The Current Dir.. it May Be Changed"); }for(i=0;i<10;i++){fscanf(IN,"%s",pIN);iOUT=fun(pIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}答案:----------------------char *p;int n=0;p=p1;while(*p++)n++;return n;----------------------第2题(分)题号:386 难度:中第2章/*------------------------------------------------【程序设计】--------------------------------------------------功能:用函数求N个[10,60]上的整数中能被5整除的最大的数,如存在则返回这个最大值,如果不存在则返回0。
C语言题库(程序改错、填空、设计)(2021年整理精品文档)
C语言题库(程序改错、填空、设计)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(C语言题库(程序改错、填空、设计))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为C语言题库(程序改错、填空、设计)的全部内容。
/*——-—-—-—————----———---————-——-——-——----——---——-—【程序设计】--—-—--------——-———-—-—-——-——--—-—-———-——-—————---功能:输入n个数,并求出小于平均值的数的个数.——-————-—--—--———-—---—---—-———-—----———---————-*/#include "stdio.h”int average_num(int a[],int n){/*********Begin**********//********** End **********/}main(){int n,a[100],i,num;void TestFunc();scanf(”%d”,&n);for(i=0;i<n;i++)scanf("%d”,&a[i]);num=average_num(a,n);printf(”the num is:%d\n",num);TestFunc();}void TestFunc(){FILE *IN,*OUT;int n;int i[10];int o;IN=fopen("in.dat","r”);if(IN==NULL){printf(”Read File Error");}OUT=fopen(”out。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷编号:10578所属语言:C语言试卷方案:TC_150522153552试卷总分:440分共有题型:1种一、程序改错共44题(共计440分)第1题(10.0分)题号:380 难度:中第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:输入两个双精度数,函数返回它们的平方和的平方根值。
例如:输入:22.936 和 14.121,输出为:y = 26.934415。
------------------------------------------------------*/#include <stdio.h>#include <conio.h>#include <math.h>/**********FOUND**********/double fun (double *a, *b){double c;/**********FOUND**********/c = sqr(a*a + b*b);/**********FOUND**********/return *c;}main ( ){double a, b, y;printf ( "Enter a, b : ");scanf ("%lf%lf", &a, &b );y = fun (&a, &b);printf ("y = %f \n", y );}答案:=======(答案1)=======double fun (double *a, double *b)=======(答案2)=======c = sqrt(*a * *a + *b * *b);=======(答案3)=======return c;第2题(10.0分)题号:438 难度:中第2章/*------------------------------------------------【程序改错】--------------------------------------------------功能:编写函数fun,求两个整数的最小公倍数,然后用主函数main()调用这个函数并输出结果,两个整数由键盘输入。
------------------------------------------------*/#include <stdio.h>int fun(int m,int n){int i;/**********FOUND**********/if (m=n){i=m;m=n;n=i;}for(i=m;i<=m*n;i+=m)/**********FOUND**********/if(i%n==1)return(i);return 0;}main(){unsigned int m,n,q;printf("m,n=");scanf("%d,%d",&m,&n);/**********FOUND**********/q==fun(m,n);printf("p(%d,%d)=%d",m,n,q);}答案:=======(答案1)=======if (m<n)=======(答案2)=======if(i%n==0)=======(答案3)=======q=fun(m,n);第3题(10.0分)题号:404 难度:易第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:编写函数求2!+4!+6!+8!+10+12!+14!。
------------------------------------------------------*/#include <stdio.h>long sum(int n){/**********FOUND**********/int i,jlong t,s=0;/**********FOUND**********/for(i=2;i<=n;i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}/**********FOUND**********/return(t);}main(){printf("this sum=%ld\n",sum(14));}答案:=======(答案1)=======int i,j;=======(答案2)=======for(i=2;i<=n;i=i+2)=======(答案3)=======return(s);第4题(10.0分)题号:360 难度:中第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:计算正整数num的各位上的数字之积。
例如:若输入:252,则输出应该是:20。
若输入:202,则输出应该是:0。
------------------------------------------------------*/#include <stdio.h>#include <conio.h>long fun (long num){/**********FOUND**********/long k=1do{k*=num%10 ;/**********FOUND**********/num\=10;/**********FOUND**********/}while(!num) ;return (k) ;}main( ){long n ;printf("Please enter a number:") ; scanf("%ld",&n) ;printf("\n%ld\n",fun(n)) ;}答案:=======(答案1)=======long k=1;=======(答案2)=======num/=10;=======(答案3)=======} while(num) ;第5题(10.0分)题号:413 难度:易第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。
------------------------------------------------------*/#include <stdio.h>main(){int i,a,n=1;/**********FOUND**********/while(n<7){do{scanf("%d",&a);}/**********FOUND**********/while(a<1&&a>50);/**********FOUND**********/for(i=0;i<=a;i++)printf("*");printf("\n");n++;}}答案:=======(答案1)=======while(n<=7)=======(答案2)=======while(a<1||a>50);=======(答案3)=======for(i=1;i<=a;i++)第6题(10.0分)题号:553 难度:中第1章/*-------------------------------------------------------【程序改错】---------------------------------------------------------题目:列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。
请纠正程序中存在错误,使程序实现其功能。
-------------------------------------------------------*/#include <stdio.h>main(){/***********FOUND***********/float r=10,h=5;/***********FOUND***********/v=1/3*3.14159*r2*h;/***********FOUND***********/printf("v=%d\n",v);}答案:=======(答案1)=======float r=10,h=5,v;=======(答案2)=======v=1.0/3*3.14159*r*r*h;=======(答案3)=======printf("v=%f\n",v);第7题(10.0分)题号:399 难度:易第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写函数fun求20以内所有5的倍数之积。
------------------------------------------------------*/#include <stdio.h>#define N 20int fun(int m){/**********FOUND**********/int s=0,i;for(i=1;i<N;i++)/**********FOUND**********/if(i%m=0)/**********FOUND**********/s=*i;return s;}main(){int sum;sum=fun(5);printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum);}答案:=======(答案1)=======int s=1 , i ;=======(答案2)=======if(i%m==0)=======(答案3)=======s=s*i;第8题(10.0分)题号:397 难度:中第2章/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:输入两个实数,按代数值由小到大输出它们,并在fun() 函数中输出。