C语言上机题(105套)改后
计算机二级考试C语言上机试题(100题)
1.程序填空题在主函数中从键盘输入若干个数放入数组a中,用0结束输入但不计入数组。
下列给定程序中,函数fun的功能是:输出数组元素中小于平均值的元素。
例如,数组中元素的值依次为34、54、675、456、453、121,则程序的运行结果为34、54、121。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!#include <conio.h>#include <stdio.h>void fun(___1___,int n){double count=0.0;double average=0.0;int i=0;for(i=0;i<n;i++)___2___;average=___3___;for(i=0;i<n;i++)if(a[i]<average){if(i%5==0)printf("\n");printf("%d,",a[i]);}}main(){int a[1000];int i=0;printf("\nPlease enter datas(end with 0):");do{scanf("%d",&a[i]);}while(a[i++]!=0);fun(a,i-1);}【答案】(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n2.程序修改题给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)例如:若m中的值为5,则应输出1.463611。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>double fun(int m){double y=1.0;int I;/**********found**********/for(i=2;i<m;i++)/**********found**********/y+=1/(i*i);return(y);}main(){int n=5;printf("\nThe result is %lf\n", fun(n));}【答案】(1)将for(i=2;i<m;i++) 改为:for(i=2;i<=m;i++)(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);3.程序设计题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
C语言上机试题及答案
实验一Visual C++6.0的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6 的方法。
2、熟悉 VC6 开发环境。
3、初步掌握简单程序的上机操作基本步骤,熟悉 C 单文件程序的输入、编译、链接和运行过程。
4、初步掌握程序的编辑修改和调试。
5、熟练使用赋值运算、算术运算等表达式。
6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。
请同学们按照下面的实验指导学习VisualC++6.0的使用。
1 .启动 VisualC++6 .0 开发环境(1)单击开“始”按钮,选择程“序”——〉“Microsoft Visual Studio6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。
(2)单击“结束”按钮,关闭窗口,进入VC6.0 开发环境的主窗口。
2 .使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。
⑴分析Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。
⑵步骤①编辑图 1-1 New 对话框编辑是将 C 源程序输入计算机的过程。
在Visual C++6.0 主界面下,点击File 菜单,选择Ne w 菜单项,即可出现New 对话框,如图1-1 所示。
在弹出窗口中的Files 标签页下,选择C++ Sour ce File。
在选项卡右面的File 编辑框里输入文件名如“Exa.c”,在 Location 编辑框里输入文件路径,2如 : \test”。
点击 OK 按钮。
将出现编辑窗口 ,如图 1-2 所示。
在图 1-2 所示的右端编辑窗口里输 入以下 C 源程序并保存文件。
图 1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程 ,结果为 Exa.obj ,由于没有 得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。
一套简单的C语言上机试题及答案详解
C 语言上机模拟试题(附详细答案)1.程序填空题请补充main函数,该函数的功能是:从键盘输入一组字符串,以“*”结束输入,并显示出这个字符串。
例如,输入abcdefghi*,结果显示adcdefghi。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!#include <stdio.h>#include <windows.h>#define N 80main(){int i=-1,j=0;char str[N];system("cls");printf("\n Input a string \n");do{i++;/**********found**********/scanf(___1___);/**********found**********/}while(___2___);printf("\n**display the string** \n");while(j<i){/**********found**********/printf(___3___);j++;}}2.程序修改题下列给定程序中,函数fun()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <conio.h>#include <stdio.h>#include <windows.h>#define MAXLINE 20/**********found**********/fun(char *pstr[6]){int I, j;char *p;for(i=0;i<5;i++){for(j=i+1;j<6;j++)/**********found**********/{if(strcmp(*(pstr+i),pstr+j)>0){p=*(pstr+i);/**********found**********/*(pstr+i)=pstr+j;*(pstr+j)=p;}}}}main(){int I;char *pstr[6],str[6][MAXLINE];system("cls");for(i=0;i<6;i++) pstr[i]=str[i];printf("Enter 6 string(1 string at eachline):\n ");for(i=0;i<6;i++) scanf("%s",pstr[i]);fun(pstr);printf("The strings after sorting:\n ");for(i=0;i<6;i++)printf("%s\n",pstr[i]);}3.程序设计题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
C语言上机考试系统试题及答案(上机系统部分)
例如,输入下面矩阵:
1 2 3
4 5 6
7 8 9
其转置矩阵为:
1 4 7
2 5 8
3 6 9
则程序输出:
2 6 10
6 10 14
10 14 18
注意:部分源程序已给出,并保存在考生文件夹下的 prog1.c 文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语
句,并将横线去掉。
#include <stdio.h>
#include<conio.h>
void fun (int a[3][3], int b[3][3])
{
int i,j;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",t[i][j]);
printf("\n");
}
}【参考答案】
程序填空题:第9行 bb[i]=0 第24行 bb[5]++ 第26行 p++;【 ++p; p=p+1; p+=1; 】
for (i=0;i<3;i++)
{for (j=0;j<3;j++)
printf("%7d ",array[i][j]);
printf("\n ");
}
fun(array);
printf("Converted array:\n ");
C语言程序设计上机考试试题和参考答案
int i, flag;
for (i = 100; i <= 10000; i++) //1
{
flag = fun(i);
//2
if (flag)
{
printf("%d\n", i); //1
}
}
}
int fun(int n)
void Input(int a[][10],int n);
int Compute(int a[][10],int n); ***输入提示信息***:"Input n(n<=10):\n" ***输入数据格式***:"%d" ***输入提示信息***:"Input matrix:\n" ***输入数据格式***:"%d" ***输出数据格式***:"sum=%d\n" 注:
//2
term = term * 10 + 3;
//2
}
printf("sum=%ld\n", sum);
//1
}
2.(15 分)请按给定要求编写程序,编程打印 100~10000 之间的所有完数。所谓完 数是指一个数的所有因子(除其自身)之和恰好等于其自身。如 6 就是一个完数 因为 6=1+2+3。判断一个数是否是完数请按给定的函数原型编程实现,若是完数 函数返回值为 1,否则返回值为 0。函数原型如下: int fun(int n); ***输入提示信息***:无 ***输入数据格式***:无 ***输出数据格式***:"%d\n" 注:不按给定的函数原型编写程序,即使程序运行结果正确也不给分。 参考答案
c语言练习用上机试题答案
int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0) s+=i;
return s;
※号(9套)
填空 [N] t[i][j] t[j][i]
改错 #define FU(m,n) ((m)/(n))return(value);
将字符串中的前导*号全部删除,中间和尾部的*号不删除。
int i,j,s=0;
for(j=0;j<N;j++) s+=a[0][j]+a[M-1][j];
for(i=1;i<=M-2;i++) s+=a[i][0]+a[i][N-1];
return s;
素数(5套)
填空 i t++ count
改错intfun(int a,int b,int c)
elsereturn1;
N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头结点,找出学生的最高分。
double max=h->s;
for(h=h->next;h->next!=NULL;h=h->next)
if(h->s>max) max=h->s;
return max;
填空 0.0 x[i]/N j++
改错doublefun(int m) for(i=100;i<=m;i+=100)
ss[i]='\0';
填空 0 || 1
改错t-=1.0/i;return t;
删除字符串中的所有空格。
int i=0;char *p=str;
C语言上机练习参考标准答案
C语言上机练习参考标准答案C语言上机练习参考答案————————————————————————————————作者:————————————————————————————————日期:第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------Programming in C is fun!I love C language.---------------------------------Program#includemain(){ printf("---------------------------------\n");printf("Programming in C is fun!\n");printf("I love C language.\n");printf("---------------------------------\n");}1-2编写程序,在屏幕上显示一个如下图案:* * * ** * ** **Program (1)#includemain(){ printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n ");}Program (2)#includemain(){ printf("%c%4c%4c%4c\n", '*', '*', '*', '*');printf("%3c%4c%4c\n", '*', '*', '*');printf("%5c%4c\n", '*', '*');printf("%7c\n ", '*');}1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。
C语言上机100题
一、填空题考试做题要求:1、在__1__处填写正确的答案,并将下划线和数字删除。
2、将题目做完之后一定要保存。
3、不能删除/**********found**********/,也不能多行或少行。
1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。
当调用正确时, 程序输出:x1=5.000000, x2=3.000000,x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>double f1(double x){ return x*x; }double f2(double x, double y){ return x*y; }/**********found**********/__1__ fun(int i, double x, double y){ if (i==1)/**********found**********/return __2__(x);else/**********found**********/return __3__(x, y);}main(){ double x1=5, x2=3, r;r = fun(1, x1, x2);r += fun(2, x1, x2);printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r);}2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
#include <stdio.h>#include <string.h>struct student {long sno;char name[10];float score[3];};void fun(struct student a[], int n){ /**********found**********/__1__ t;int i, j;/**********found**********/for (i=0; i<__2__; i++)for (j=i+1; j<n; j++)/**********found**********/if (strcmp(__3__) > 0){ t = a[i]; a[i] = a[j];a[j] = t; }}main(){ struct student s[4]={ {10001,"ZhangSan", 95, 80, 88}, {10002,"LiSi", 85, 70, 78}, {10003,"CaoKai", 75, 60, 88},{10004,"FangFang", 90, 82, 87}};int i, j;printf("\n\nThe original data :\n\n");for (j=0; j<4; j++){printf("\nNo:%ldName:%-8sScores: ",s[j].sno, s[j].name);for (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}fun(s, 4);printf("\n\nThe data after sorting:\n\n");for (j=0; j<4; j++){ printf("\nNo: %ld Name: %-8sScores: ",s[j].sno, s[j].name);for (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}}3、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
c语言上机考试试题
c语言上机考试试题C语言上机考试试题在计算机科学领域中,C语言是一门重要的编程语言,广泛应用于软件开发、系统编程等方面。
作为计算机专业的学生,掌握C语言的基本知识和编程技巧是必不可少的。
为了检验学生对C语言的掌握程度,许多学校和培训机构会安排C语言上机考试。
下面,我们来看一些典型的C语言上机考试试题。
1. 编写一个程序,从键盘输入一个整数n,计算并输出1到n的累加和。
这道题考察了学生对循环结构的理解和运用。
学生需要使用循环语句(如for、while等)来实现累加的功能,并且注意输入的合法性。
2. 编写一个程序,从键盘输入一个字符串,统计并输出其中的字母、数字和其他字符的个数。
这道题考察了学生对字符串处理的能力。
学生需要使用字符数组和循环语句来逐个判断输入字符串中的字符,并根据字符的类型进行计数。
3. 编写一个程序,从键盘输入一个正整数n,判断并输出n是否为素数。
这道题考察了学生对素数判断的理解和实现。
学生需要使用循环语句和条件判断语句来判断n是否能被2到sqrt(n)之间的任意整数整除。
4. 编写一个程序,从键盘输入一个正整数n,计算并输出n的阶乘。
这道题考察了学生对递归的理解和应用。
学生可以使用递归函数来实现阶乘的计算,也可以使用循环语句来实现。
5. 编写一个程序,从键盘输入一个字符串,将其中的大写字母转换为小写字母,并输出转换后的字符串。
这道题考察了学生对字符处理的能力。
学生需要使用字符数组和循环语句来逐个判断输入字符串中的字符,并根据字符的ASCII码进行转换。
6. 编写一个程序,从键盘输入一个字符串,判断并输出该字符串是否为回文字符串。
这道题考察了学生对字符串处理和回文判断的能力。
学生需要使用字符数组和循环语句来逐个比较输入字符串中的字符,并判断是否为回文字符串。
通过上述的典型试题,我们可以看到C语言上机考试主要考察学生对基本语法、流程控制、数组和字符串处理等方面的掌握程度。
在解答这些试题时,学生需要注重代码的逻辑性、清晰性和效率性,避免出现死循环、数组越界等常见错误。
C语言上机编程题,全
上机编程题的最大值,并将该数以格式"%.3f"写到1. 对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)考生目录下的新建文件design1.dat中。
#include <stdio.h>#include <math.h>void main(){ FILE *p; float f(float),max,x;p=fopen("design1.dat","w");max=f(1);for(x=2;x<=10;x++)if(f(x)>max) max=f(x);fprintf(p,"%.3f",max);fclose(p);}float f(float x){y=y-10*cos(y)-5*sin(y);return (y);},若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,2. z=f(x,y)=(3.14*x-y)/(x+y)并将x1、y1以格式"%d,%d"写入到考生目录下的新建文件design1.dat中。
#include <stdio.h>void main(){ FILE *p; float f(float x,float y),min;int x,y,x1,y1;p=fopen("design1.dat","w");min=f(1,1);for(x=1;x<=6;x++)for(y=1;y<=6;y++)if(f(x,y)<min){min=f(x,y); x1=x;y1=y;}fprintf(p,"%d,%d",x1,y1);fclose(p);}float f(float u,float v){ return (3.14*u-v)/(u+v); }若x,y取值为区间[0,10]的整数,找出使z取最小值的3. z=f(x,y)=10*cos(x-4)+5*sin(y-2),x1,y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的新建文件design1.dat中。
大一c语言上机考试题及答案
大一c语言上机考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:C2. C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. defD. void答案:D3. C语言中,哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列哪个选项是C语言中正确的字符串定义?A. char str[] = "Moonshot";B. char str[] = {"Moonshot"};C. char str[] = 'Moonshot';D. char str[] = "Moonshot'';答案:A5. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. ==D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:int _______;。
答案:变量名2. 在C语言中,使用________运算符可以将字符串连接起来。
答案:+3. C语言中,________关键字用于定义一个结构体。
答案:struct4. 使用________函数可以输出格式化的字符串。
答案:printf5. C语言中,________函数用于计算字符串的长度。
答案:strlen三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有奇数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("Sum of odd numbers from 1 to 99 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串反转。
c语言上机100套答案
第一套给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号、姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
答案: 一、1、STYPE 2、FILE 3、fp二、1、把for(i=0;i<s1;i++)改成for(i=0;i<sl;i++)注意:就是s 后的原来是数字1,应该改成字母l2、把t[sl]=‟\0‟改成t[2*sl]=‟\0‟第二套给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用—1(独立一行)作为字符串输入结束的标志。
然后将文件的内容读出显示在屏幕上。
文件的读写分别由自定义函数ReadText和WriteText实现。
答案:一、1、*fw 2、str 3、str二、1、把void fun(long s,long t)改为void fun(long s,long* t)2、把sl=sl*100改为sl=sl*10第三套给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
答案:一、1、fp 2、fclose(fp)3、fname二、1、把for(i=j+1;i<n-1;i++)改成for(i=j+1;i<n;i++)2、把t=i;改成p=i;第四套给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。
在复制的过程中,把复制的内容输出到终端屏幕。
主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
答案:一、1、”r”2、fs 3、ft二、1、把if (d%2=0)改为if(d%2==0)2、把s\=10改为s/=10第五套给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
大一C语言上机实验试题及答案
/*如果长、宽、高相等,则为立方体*/
printf(“该箱子是立方体。”);
else
printf(“该箱子是长方体。”);
}
2、#include <stdio.h>
void main( )
{ int year,month,days;
printf(“Please enter year and month:\n”);
五、实验调试记录:
六、参考答案: 1、#include <stdio.h> #define PI 3.14 void main( ) { float r1,r2; double s1,s2,s; printf(“Please enter r1,r2:\n”); scanf(“%f%f”,&r1,&r2); s2=r2*r2*PI; s1=r1*r1*PI; s=s2-s1; printf(“s=%lf\n”,s); } 2、#include <stdio.h> void main( ) { float h,c; printf(“请输入华氏温度:”);
scanf(“%d%d%d%d”,&a,&b,&c,&d); if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(a>d) { t=a; a=d; d=t; } if(b>c) { t=b; b=c; c=t; } if(b>d) { t=b; b=d; d=t; } if(c>d) { t=c; c=d; d=t; } printf(“排序结果如下:\n”); printf(“%d,%d,%d,%d\n”,a,b,c,d); }
(word完整版)C语言考试题库及答案,推荐文档
C 语言理论上机考试选择题部分(共200 题)1、下面程序的输出是___D ______#include<stdio.h>void main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D _______A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C 语言字符常量是_______ A ____ .A) '\t' B) "A" C) 65 D) A4、表达式: 10!=9 的值是________ D ___ .A) true B) 非零值C) 0 D) 15 、C 语言提供的合法的数据类型关键字是_ B ___ .A) Double B) short C) integer D) Char6、字符(char) 型数据在微机内存中的存储形式是__D__.A) 反码B) 补码C) EBCDIC 码D) ASCII 码7、C 语言程序的基本单位是_____ C _____ .A) 程序行B) 语句C) 函数D) 字符 &设int a=12,则执行完语句a+=a-=a*a后,a的值是___ D ___A) 552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是_ B__.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 1010 、下面程序的输出是____ B _____ .{int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 2411 、下面程序的输出的是 ____ C ___ .#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是_____ A ____ .#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if 后一对圆括号中表示a 不等于0 的关系,则能正确表示这一关系的表达式为_______ D__.A) a<>0 B) !a C) a=0 D) a14、以下程序的输出结果是____ D _____.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是____ D ____ .A) 1 B) 0 C) 4 D) 316、为表示关系x > y > z,应使用C语言表达式___A___.17、 C 语言中非空的基本数据类型包括_____ B ___ .A) 整型,实型,逻辑型B) 整型,实型,字符型#include<stdio.h> void main() A) (x>=y)&&(y>=z)C) (x>=y>=z)B) (x>=y)AND(y>=z)D) (x>=y) & (y>=z)C) 整型,字符型,逻辑型D) 整型,实型,逻辑型,字符型18、若x 和y 都是int 型变量,x=100,y=200, 且有下面的程序片段:printf("%d",(x,y)); 上面程序片段的输出结果是_______________________________ A___.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<stdio.h> void main() { charch; scanf("%3c",&ch); printf("%c",ch);}如果从键盘上输入abc< 回车> 则程序的运行结果是__A ______________________ .A) a B) b C) c D) 程序语法出错20、阅读下面的程序#include<stdio.h> void main() {int i,j;i=010; j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是_____ D __ .A) 1,19 B) -1,19 C) 1,17 D) -1,1721、阅读下面的程序#include<stdio.h> void main(){int i,j,m,n; i=8;j=10; m=++i; n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_______ C ____ .A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10D) 9,10,9,1122、已知a=12, 则表达式a+=a-=a*=a 的结果是 ____ A__.A) 0 B) 144 C) 12 D) -26423、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21 D) 1124、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入是 ___ D .1 2 34567<回车>,则程序的运行结果A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4525、下面程序的输出结果是_____ D ___ .#include<stdio.h> void main(){int a=-1, b=4, k; k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,326、下面程序的输出结果是_____ A ___ .#include<stdio.h> void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,027、执行下面程序段后,输出结果是_____ A ___ .int a;int b=65536; a=b; printf("%d\n",a);A) 65536 B) 0 C) -1 D) 128、若有以下定义和语句:int a=010, b=0x10, c=10; printf("%d,%d,%d\n",a,b,c); 则输出结果是____ B ____ .A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1029、已知有double 型变量x=2.5,y=4.7, 整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________ B ____ .A) 2.4 B) 2.5 C) 2.75 D) 030 、若已定义x 和y 是整型变量,x=2;, 则表达式y=2.75+x/2 的值是 ___ C ___ .A) 5.5 B) 5 C) 3 D) 4.031、以下程序的输出结果是______ D ___ .#include<stdio.h> void main(){int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,1332 、设有以下语句:int x=10;x+=3+x%(3), 则x 的值是. _____ A _____A) 14 B) 15 C) 11 D) 1233、若d 为double 型变量,则表达式d=1,d+5,d++ 的值是___ D__.A) 1 B) 6.0 C) 2.0 D) 1.034、表达式5!=3 的值是____ D ___ .A) T B) 非零值C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a 的值__________ A ____ . A) 0 B) 1 C) 12 D) 6D) C 语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符_____ C __ .A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y 值的数据类型是___D ____ .A) float B) char C) int D) double40、一个C 语言的执行是从_____ A _____ .A) 本程序的主函数开始,到本程序的主函数结束B) 本程序的第一个函数开始,到本程序的最后一个函数结束C) 本程序的主函数开始,到本程序的最后一个函数结束D) 本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系10<a<15的 C 语言表达式是___ A ___ .A) 10<a<15 B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_______ C ___ .#include <stdio.h>void main( ) { int a=5,b=60,c;if (a<b) {c=a*b;printf("%d*%d=%d\n",b,a,c);}else{c=b/a;printf("%d/%d=%d\n",b,a,c);}}A) 60/5=12 B) 300 C) 60*5=300 D) 12 43、如果 c 为字符型变量,判断 c 是否为空格不能使用___ A ___ .( 假设已知空格ASCII 码为32)A) if(c=='32') B) if(c==32)36、若有定义int x=3,y=2 和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b 的值是__D__.A) 0 B) 2 C) 1.5 D) 137、在C 语言中,以下叙述不正确的是_____ A ___ .A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C 程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同44、运行下面程序时,若从键盘输入"3,5<CR>" ,则程序的输出结果是____ D___ .#include <stdio.h>void main( ){int x,y;scanf("%d,%d",&x,&y);if (x==y) printf("x==y");else if (x>y) printf("x>y");else printf("x<y");}A) 3<5 B) 5>3 C) x>y D) x<y45 、运行下面程序时,若从键盘输入数据为"6,5,7<CR>" ,则输出结果是C___.C) if(c=='\40') D) if(c==' ')#include <stdio.h>void main( ){ int a,b,c; scanf("%d,%d,%d",&a,&b,&c);if (a>b)if (a>c) printf("%d\n",a);else printf("%d\n",c);elseif (b>c) printf("%d\n",b);else printf("%d\n",c);}A) 5 B) 6 C) 7 D) 不定值46、执行下面程序时,若从键盘输入"2<CR>" ,则程序的运行结果是_____ A ____ .#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9') k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10; printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1047、运行下面程序时,从键盘输入"2.0<CR>" ,则输出9士里阜 D结果是___B ____ .#include <stdio.h>void main( ){ float a,b;scanf("%f",&a);if (a<0.0) b=0.0;else if ((a<0.5) && (a!=2.0)) b=1.0/(a+2.0);else if (a<10.0) b=1.0/2;else b=10.0;printf("%f\n",b);}A) 0.000000 B) 0.500000C) 1.000000 D) 0.25000048、执行下面程序后,运行结果是_____ A ___ .#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=149、运行下面程序时,从键盘输入"12,34,9<CR>" ,则输出结果是___A___.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值50、运行下面程序时,从键盘输入字母H,则输出结果是____ C___.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!51、执行下列程序段后的输出结果是 ________ A __ .int x=1,y=1,z=1; x+=y+=z;printf("%d\n",x<y?y:x); A) 3 B) 2 C) 1D) 452、设 ch 是 char 型变量 ,值为 'A', 则表达式 ch=(ch>='A' && ch<='Z')?ch+32:ch 的值是 __B___. A) Z B) aC) zD) A53、下面程序的输出结果是 _____ C #include <stdio.h> void main( ){ int x=8,y=-7,z=9; if (x<y)if (y<0) z=0; else z-=1; printf("%d\n",z);}A) 8 B) 154、运行下面程序时 ,若从键盘输入 "5 <CR>", 则程序的 输出结果是 _____________ B ___. #include <stdio.h> void main( ){ int a ; scanf("%d",&a); if (a++>5)printf("%d\n",a); else printf("%d\n",a--) ;}A) 7 B) 6 C) 5 D) 455、运行下面程序时,若从键盘输入 "3 ,4 <CR>" ,则 程序的输出结果是 ____ B___. #include <stdio.h> void main( ){ int a,b,s; scanf("%d,%d",&a,&b); s=a; if (s<b) s=b; s=s*s; printf("%d\n",s) ;}A) 14 B) 16 C) 18D) 20#include <stdio.h> void main( ) { int x=0,y=1,z=0; if (x=z=y)x=3; printf("%d,%d\n",x,z);}A) 3,0B) 0,0C) 0,1 D) 3,157、假定等级和分数有以下对应关系: 等级:A 分数:85〜100 等级:B 分数:60〜84 等级: C分数: 60 以下对于等级 grade 输出相应的分数区间,能够完成该功 能的程序段是 ________ D ___ . A) switch (grade){case 'A':printf("85--100\n"); case 'B':printf("60--84\n");case 'C':printf("60 以下 \n"); default:printf(" 等级错误 !\n");} B) switch (grade){case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");case 'C':printf("60 以下 \n"); default:printf(" 等级错误 !\n");} C) switch (grade){case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");break;case 'C':printf("60 以下 \n"); default:printf(" 等级错误 !\n");} D) switch (grade){case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");break;case 'C':printf("60 以下 \n");break; default:printf(" 等级错误 !\n");}58、能够完成如下函数计算的程序段是__B厂-1x<0 y=T 0x=0 L1x>056、下列程序的执行结果是 ______ DA) y=1;B) if (x>=0)Bye_Bye!C) 9D) 0if (a) d=d-10; else if(!b) if (!c) x=15; else x=25; printf("d=%d\n",d);}A) d=20B) d=10C) d=15D) 2562、有如下程序 : #include <stdio.h> void main( ){ int a=2,b=-1,c=2; if (a<b) if (b<0) c=0; else c++; printf("%d\n",c);}该程序的输出结果是 ___C _____ . A) 0 B) 1 C) 2 D) 363、下列程序执行后的输出结果是 ______ B __ . #include <stdio.h> void main( ){ int x,y=1,z; if ((z=y)<0) x=4; else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息64、有如下程序 #include <stdio.h> void main( ){ int x=1,a=0,b=0; switch(x) {case 0: b++; case 1:a++; case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是 _______ A ___ . A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=265、下面程序的输出结果是 _____ C ___ . #include <stdio.h>if(x!=0)if(x>0) y=1; else y=0; C) y=0;if (x>=0)if (x>0) y=1; else y=-1;if(x>0) y=1; else y=0; elsey=-1;D) y=-1;if (x>0) y=1; else y=0;59、有如下程序 #include <stdio.h> void main( ) { float x=5.0,y; if(x<0.0) y=0.0; else if (x<10.0) y=1.0/x; else y=1.0; printf("%f\n",y);}该程序的输出结果是 C ____ .A) 0.000000 B) 0.50000 C) 0.200000D) 1.00000060、以下程序的执行结果是 ___B _____ . #include <stdio.h> void main( ) { int x=1,y=0; switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break; }case 2:printf("third\n");}}A) firstB) first second third C) firstD) secondthird61、以下程序的执行结果是 _____ A #include <stdio.h> void main( ){ int a,b,c,d,x; a=c=0; b=1; d=20;void main( ){ int a=-1,b=1,k; if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);else printf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 066、假定w、x、y、z、m 均为int 型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z; 则该程序段执行后,m 的值是____________ D __________ . A) 4 B) 3 C) 2 D) 167、以下程序的输出结果是___D ______ .main( ) { int a=100;if (a>100) printf("%d\n",a>100); elseprintf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 168、若执行下面的程序从键盘上输入是. B#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);} A) 11 B) 10 C)969、以下程序输出结果是______ D ____#include <stdio.h>void main( ){ int m=4;if (++m>5) printf("%d\n",m--); else printf("%d\n",--m);70、若执行下面的程序从键盘上输入5,则输出结果是#include <stdio.h>void main( ){int x;scanf("%d",&x);if (x++>5) printf("%d\n",x);else printf("%d\n",x--);}A) 7 B) 6 C) 5 D) 471、以下程序段运行结果是_____ A___ .int x=1,y=1,z=-1; x+=y+=z; printf("%d\n",x<y?y:x); A) 1 B) 2 C) 4 D) 不确定的值72、有以下程序#include <stdio.h> void main( ) { int a,b,c=246;a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b);}输出结果是___ A ____ .A) 2,1 B) 3,2 C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123" ,则输出结果是___C ___ .#include "stdio.h"void main(){ int num,i,j,k,place; scanf("%d",&num); if (num>99)place=3;else if(num>9)place=2;elseplace=1; i=num/100; j=(num-i*100)/10;k=(num-i*100-j*10); switch (place) { case 3:printf("%d%d%d\n",k,j,i); break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,174、执行下列程序后的输出结果是___D _____ .#include <stdio.h> void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 175、以下条件表达式中能完全等价于条件表达式x 的是 __B___.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)76、若运行下面程序时,给变量a 输入15,则输出结果是___A___.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 109,则输出结果D) 8A) 7 B) 6 C) 5 D) 477、运行下面程序后,输出是___D___.#include <stdio.h>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n")}A) ####B) ****C) ####****D) 有语法错误不能通过编译78、执行下面程序的输出结果是______ C___ .#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####79、为了避免嵌套的if-else 语句的二义性,C 语言规定else 总是与___C___ 组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if80、设x 、y 、z 、t 均为int 型变量,则执行以下语句后,t 的值为___ C ____ .x=y=z=1; t=++x || ++y && ++z;A) 不定值B) 4 C) 1 D) 081、以下程序段 C ________ .x=-1;do{x=x*x;} while (!x);A) 是死循环B) 循环执行两次C)循环执行一次D)有语法错误82、对下面程序段描述正确的是___B _____ .int x=0,s=0;while (!x!=0) s+=++x; printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次83、下面程序段的输出结果是____ C ___ .x=3; do { y=x--;if (!y) {printf("*");continue;} printf("#");} while(x=2);A) ## B) ##* C)死循环D)输出错误信息84、下面程序的运行结果是 B . #include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0); printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,985、下面程序段的运行结果是____ B _____ .int n=0;(n * n )/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 请填空,完成求n 的功能。
C语言上机练习汇总及答案
1)10002 显示Hello World! ........................................................................... 错误!未定义书签。
2)10003 显示What is a computer? .............................................................. 错误!未定义书签。
3)10004 显示图形(字符图案输出)......................................................... 错误!未定义书签。
4)10005 显示Welcome to You!(调试示例error01_1) ........................... 错误!未定义书签。
5)10006 显示"Programming in C is fun!" .................................................. 错误!未定义书签。
6)10007 显示图案(字符图案输出)....................................................... 错误!未定义书签。
7)20011 求华氏温度100°F对应的摄氏温度。
........................................... 错误!未定义书签。
8)20012 求华氏温度150°F 对应的摄氏温度。
......................................... 错误!未定义书签。
9)20013 求摄氏温度26°C对应的华氏温度。
............................................ 错误!未定义书签。
计算机二级C语言100套上机填空题答案和改错题答案
填空题答案第1题答案第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或1l或1L第2题答案第1处填空:n==0或0==n或!n第2处填空:n==1或1==n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)第3题答案第1处填空:n--或--n或n-=1或n=n-1第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t第4题答案第1处填空:i<=n或n>=i第2处填空:||第3处填空:1.0或(double)1第5题答案第1处填空:r*r第2处填空:&x第3处填空:x第6题答案第1处填空:<=第2处填空:n++或n+=1或n=n+1 第3处填空:return s或return (s) 第7题答案第1处填空:n%10第2处填空:break第3处填空:break第8题答案第1处填空:&num[i]或num+i第2处填空:max<num[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i] 第9题答案第1处填空:(*a)++或++(*a)或*a=*a+1或*a+=1第2处填空:(*b)++或++(*b)或*b=*b+1或*b+=1第3处填空:upper,lower第10题答案第1处填空:max=a第2处填空:max=b第3处填空:max=c第11题答案第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c 第12题答案第1处填空:tt[i]<='Z'或'Z'>=tt[i]第2处填空:32或'a'-'A'第3处填空:tt第13题答案第1处填空:char*fun(int n)第2处填空:2第3处填空:n%i==0或!(n%i)或0==n%i第14题答案第1处填空:*p或*p!='\0'或*p!=0第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第15题答案第1处填空:!=第2处填空:str[1]或*(str+1)第3处填空:s,c第16题答案第1处填空:n%100!=0或n%100或0!=n%100第2处填空:n%400==0或!(n%400)或0==n%400第3处填空:flag第17题答案第1处填空:n第2处填空:else第3处填空:a,b第18题答案第1处填空:*p==t或t==*p第2处填空:bb[n++]=i第3处填空:n第19题答案第1处填空:score[i]或*(score+i)第2处填空:below第3处填空:below[i]或*(below+i)第20题答案第1处填空:i第2处填空:j第3处填空:aa,&n第21题答案第1处填空:j++或++j或j+=1或j=j+1第2处填空:s[i]=t1[i]第3处填空:j第22题答案第1处填空:&&第2处填空:0第3处填空:s[j]或*(s+j)第23题答案第1处填空:int x[]或int*x第2处填空:sum+=x[i]或sum=sum+x[i]第3处填空:sum/n第24题答案第1处填空:a第2处填空:a第3处填空:b第25题答案第1处填空:n/2第2处填空:i第3处填空:a[n-i-1]第26题答案第1处填空:i=1第2处填空:&&第3处填空:--j或j-1第27题答案第1处填空:j=2第2处填空:i第3处填空:j第28题答案第1处填空:1第2处填空:s*i或i*s第3处填空:0第4处填空:s+fun(k)或fun(k)+s第29题答案第1处填空:0第2处填空:i<=x或x>=i第30题答案第1处填空:--i或i--或i-=1或i=i-1第2处填空:s[i]-'0'第3处填空:t*10+k或k+t*10或10*t+k或k+10*t第31题答案第1处填空:*(p1+i)或p1[i]或*(p1+i)!=0或p1[i]!=0第2处填空:*p2或p2[0]或*p2!=0或p2[0]!=0第3处填空:*p2++第32题答案第1处填空:sum+=x[i]或sum=sum+x[i]第2处填空:avg*1000或1000*avg第3处填空:(avg+5)/10或(5+avg)/10第33题答案第1处填空:1第2处填空:i第3处填空:a[p+i]或*(a+p+i)第34题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[5]++或++bb[5]或bb[5]=bb[5]+1或bb[5]+=1第3处填空:p++;或++p;或p+=1;或p=p+1;第35题答案第1处填空:i<*num或*num>i第2处填空:n++或++n或n+=1或n=n+1第3处填空:*num=n第36题答案第1处填空:&&第2处填空:s[i]-'0'第3处填空:n第37题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第38题答案第1处填空:n/100%10第2处填空:"yes!"第3处填空:"no!"第39题答案第1处填空:"%d",&n第2处填空:str2[i]=str1[i];第3处填空:str2第40题答案第1处填空:"%s",str1第2处填空:%c第3处填空:str2第41题答案第1处填空:"%ld",&n第2处填空:n=-n;或n*=-1;第3处填空:"%ld",n第42题答案第1处填空:*p或p[0]第2处填空:default:b[10]++;第3处填空:p++;或p+=1;或p=p+1;或++p;第43题答案第1处填空:*p或*p!=0或0!=*p 第2处填空:bb[*p-'0']++或bb[*p-'0']+=1第3处填空:num[j]=bb[i]第44题答案第1处填空:0第2处填空:||第45题答案第1处填空:s1-i-1或s1-1-i第2处填空:2*s1或s1*2第46题答案第1处填空:*k第2处填空:s[i]>max或max<s[i] 第3处填空:i第47题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第48题答案第1处填空:n>0或0<n第2处填空:n%10+'0'或'0'+n%10第3处填空:str[i]='\0'或str[i]=0第49题答案第1处填空:disc<0或0>disc第2处填空:sqrt第3处填空:sqrt第50题答案第1处填空:s第2处填空:*p++第3处填空:*(p)或*p或*p!=0第51题答案第1处填空:x>y或y<x第2处填空:x>z或z<x第3处填空:y>z或z<y第52题答案第1处填空:"out52.dat","w"第2处填空:fputc(ch,fp)第3处填空:fclose(fp)第53题答案第1处填空:i第2处填空:p->next=s第3处填空:p->next第54题答案第1处填空:*p1<*p2或*p2>*p1第2处填空:*p1>*p2或*p2<*p1第3处填空:'\0'或0第55题答案第1处填空:flag=1第2处填空:j%i==0或0==j%i或!(j%i)第3处填空:flag==1或1==flag第56题答案第1处填空:&&第2处填空:fputc(ch,fp1)第3处填空:fclose(fp)第57题答案第1处填空:double第2处填空:j第3处填空:1.0/t或(double)1/t第58题答案第1处填空:&n第2处填空:i=1第3处填空:f*=i或f=f*i或f=i*f第59题答案第1处填空:sum=0第2处填空:sum+=n或sum=sum+n或sum=n+sum第3处填空:ld第60题答案第1处填空:i<n或n>i第2处填空:j<n-1或n-1>j第61题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[i]+=score[i][j]或bb[i]=bb[i]+score[i][j]或bb[i]=score[i][j]+bb[i]第62题答案第1处填空:"%c",&str[i]或"%c",str+i第2处填空:str[i]!='*'或*(str+i)!='*'第3处填空:"%c",str[j]或"%c",*(str+j)第63题答案第1处填空:STU第2处填空:h第3处填空:h第64题答案第1处填空:str1[i]!=''或''!=str1[i]第2处填空:i++或++i或i+=1或i=i+1第65题答案第1处填空:bb[i][j]=1第2处填空:bb[i][j]=0第66题答案第1处填空:j>i或i<j第2处填空:bb[j]=bb[j-1]第3处填空:break第67题答案第1处填空:p=str第2处填空:p[i]++或++p[i]或p[i]+=1或p[i]=p[i]+1第3处填空:s[i]='\0'或s[i]=0第68题答案第1处填空:break第2处填空:'\0'或0第3处填空:*p++第69题答案第1处填空:<第2处填空:*p2或p2[0]第3处填空:str1第70题答案第1处填空:*(pstr+j)或pstr[j]第2处填空:pstr[j]或*(pstr+j)第3处填空:p第71题答案第1处填空:std[3]或std[]或*std第2处填空:PERSON第3处填空:std第72题答案第1处填空:N第2处填空:M第3处填空:bb[i]/N或*(bb+i)/N第73题答案第1处填空:bb[i][j]=0第2处填空:1第3处填空:j==n-1-i或j==n-i-1 第74题答案第1处填空:*std或std[0]第2处填空:std[i].age第3处填空:第75题答案第1处填空:&n第2处填空:t*i或i*t第3处填空:s+t或t+s第76题答案第1处填空:i第2处填空:s[j]=s[i]第77题答案第1处填空:N-1第2处填空:bb[n++]=aa[i]第3处填空:i,bb[i]第78题答案第1处填空:fun(char s[],int n)或fun(char*s,int n)第2处填空:j=0第3处填空:s[j]='\0'或s[j]=0第79题答案第1处填空:aa[i]%2==0或0==aa[i]%2或aa[i]%2第2处填空:i<k或k>i第80题答案第1处填空:--i或i--或i-=1或i=i-1 第2处填空:bb[j]=bb[i]第81题答案第1处填空:sum=0第2处填空:t[i][i]第3处填空:1第82题答案第1处填空:i%10第2处填空:g*g*g==i或i==g*g*g 第83题答案第1处填空:break;第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第84题答案第1处填空:&&第2处填空:i,j第85题答案第1处填空:[N]第2处填空:t[i][j]第3处填空:t[j][i]第86题答案第1处填空:N第2处填空:N-1第3处填空:0第87题答案第1处填空:&& 第2处填空:g+第88题答案第1处填空:s[i]或s[i]!=0或0!=s[i]第2处填空:s[i]==ch或ch==s[i]第3处填空:return n第89题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:32或'a'-'A'第3处填空:i++或++i或i+=1或i=i+1第90题答案第1处填空:STU第2处填空:std[i].num第3处填空:std[i]第91题答案第1处填空:i=1,j=0或j=0,i=1第2处填空:bb[j++]=i第3处填空:return j第92题答案第1处填空:str[i+1]或str[i+1]!='\0'或str[i+1]!=0第2处填空:str[i]=ch第93题答案第1处填空:aa[max]<aa[i]或aa[i]>aa[max]第2处填空:aa[min]>aa[i]或aa[i]<aa[min]第3处填空:aa[max]=aa[min]第94题答案第1处填空:i++或++i或i+=1或i=i+1第2处填空:s[j++]=s[i]第3处填空:s[j]='\0'或s[j]=0第95题答案第1处填空:0.0或0或(double)0第2处填空:n第3处填空:s第96题答案第1处填空:aa[k++]=t或aa[k]=t,k++或aa[k]=t;k++第2处填空:i<j或j>i第97题答案第1处填空:break第2处填空:t[i]第3处填空:u[ul]第98题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:25第3处填空:1第99题答案第1处填空:j%i==0或!(j%i)或0==j%i第2处填空:flag==1或flag或1==flag第3处填空:aver/n第100题答案第1处填空:k=0第2处填空:||第3处填空:s[k]='\0'或s[k]=0改错题答案第1题答案第1处:IsPrime(int n);应改为IsPrime(int n)第2处:if!(n%i)应改为if(!(n%i))第2题答案第1处:int k=1;应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)第3题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[j]="\0";应改为s[j]='\0';第4题答案第1处:void fun(char*s,int a,int b)应改为void fun(char*s,int*a,int*b)第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;第5题答案第1处:a[i+1]=a[i];应改为a[i]=a[i+1];第6题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y-=1/(i*i);应改为y-=1.0/(i*i);第7题答案第1处:p=j应改为p=j;第2处:p=i;应改为p=j;第8题答案第1处:void fun(char*p);应改为void fun(char*p)第2处:p=q+i;应改为q=p+i;第9题答案第1处:t=s[k];应改为t+=s[k];第2处:*aver=&ave;应改为*aver=ave;第10题答案第1处:void fun(char*s,*t1,*t2,*w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(r)应改为while(*r)第11题答案第1处:n=*p-'o';应改为n=*p-'0';第2处:n=n*7+*p-'o';应改为n=n*8+*p-'0';第12题答案第1处:a=NuLL;应改为a=NULL; 第2处:if(r==p)应改为if(*r==*p) 第13题答案第1处:t+=1.0/k;应改为t+=1.0/i; 第2处:应填return t;第14题答案第1处:int r;应改为double r;第2处:while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001)第15题答案第1处:void fun(char str,char ch)应改为void fun(char*str,char ch)第2处:if(*str==ch)应改为if(*str=='\0')第3处:str[1]='0';应改为str[1]='\0';或str[1]=0;第16题答案第1处:p->next=NULL;应改为p=s; 第2处:s->data=rand()%m;应改为s->data=rand()%(m-1);第3处:return p;应改为return h; 第17题答案第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))第2处:应填}第18题答案第1处:void fun(int a,int b)应改为void fun(int*a,int*b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;第19题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:while(s<0)应改为while(s>0) 第20题答案第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if(m>=a[mid])应改为if(m>a[mid])第21题答案第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;第22题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y+=1/(i*i);应改为y+=1.0/(i*i);第23题答案第1处:int fun(n)应改为int fun(int n)第2处:if(n=1)应改为if(n==1)第24题答案第1处:if(r==p)应改为if(*r==*p) 第2处:if(r=='\0')应改为if(*r=='\0')第25题答案第1处:if n==0应改为if(n==0)第2处:result=n--;应改为result*=n--;第26题答案第1处:应填sum=0;第2处:scanf("%d,",a[i][j]);应改为scanf("%d,",&a[i][j]);第27题答案第1处:t=0;应改为t=1.0;第2处:while(t<=eps)应改为while(t>=eps)第28题答案第1处:s=p;应改为p=s;第2处:应填p++;或++p;或p+=1;或p=p+1第3处:a[i]='0';应改为a[i]='\0';或a[i]=0;第29题答案第1处:b=a;应改为a=b;第2处:return(a);应改为return(b);第30题答案第1处:long k;应改为long k=1;第2处:num\=10;应改为num/=10;第31题答案第1处:if((tt[i]>='a')||(tt[i]<='z'))应改为if((tt[i]>='a')&&(tt[i]<='z'))第2处:tt[i]+=32;应改为tt[i]-=32;第32题答案第1处:if(i+1%5==0)应改为if((i+1)%5==0)第33题答案第1处:while(*s!='@')应改为while(*s)或while(*s!='\0')或while(*s!=0)第2处:(*s)++;应改为s++;第34题答案第1处:t=0;应改为*t=0;第2处:if(d%2==0)应改为if(d%2!=0)第35题答案第1处:if(p=='')应改为if(*p=='')第2处:*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1));第36题答案第1处:j=1;应改为j=0;第2处:while(t!=0&&m!=0&&n!=0)应改为while(t!=0||m!=0||n!=0)第37题答案第1处:*r=t;应改为r=t;或r=&t[0];第2处:应填r=t;或r=&t[0];第38题答案第1处:t=x;x=y;应改为t=*x;*x=y;第2处:return(y);应改为return(t);或return t;第39题答案第1处:void fun(char s,char t)应改为void fun(char*s,char*t)第2处:t[2*d-1]='\0';应改为t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;第40题答案第1处:for(i=j+1;i<n-1;i++)应改为for(i=j+1;i<n;i++)第2处:t=i;应改为p=i;第41题答案第1处:while(p->next)应改为while(p!=NULL)第2处:p=h->next;应改为p=p->next;第42题答案第1处:if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0)第2处:t[i]='\0';应改为t[j]='\0';或t[j]=0;第43题答案第1处:k=n;应改为k=i;第2处:b=k/10;应改为b=k%10;第44题答案第1处:fun(int**a,int m)应改为voidfun(int(*a)[M],int m)第2处:a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1);第45题答案第1处:void fun(char*s,t1,t2,w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(w)应改为while(*w)第46题答案第1处:fun(int n)应改为doublefun(int n)第2处:return sum应改为returnsum;第47题答案第1处:void fun(int*a,int n);应改为void fun(int*a,int n)第2处:m=0;应改为m=i;第48题答案第1处:fun(char(*sq)[N])应改为char*fun(char(*sq)[M])第2处:return sq;应改为return sp;第49题答案第1处:*t=malloc(sizeof(STU));应改为t=(STU*)malloc(sizeof(STU)*m);第2处:t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num);第50题答案第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1-i];第51题答案第1处:void fun(char str[][],int m,char*pt)应改为void fun(char str[][10],int m,char*pt)第2处:pt[i]=str[k,i];应改为pt[i]=str[k][i];第52题答案第1处:int fun(double x[],int n)应改为int fun(double x[],int n){第53题答案第1处:switch(g);应改为switch(g) 第2处:case 1;应改为case 1:第54题答案第1处:double fun(char*s,char*t)应改为char*fun(char*s,char*t)第2处:(*ss)++;应改为ss++;第3处:(*tt)++;应改为tt++;第55题答案第1处:y=0;应改为y=1;第2处:d=i-a;应改为d=a-i;第56题答案第1处:void fun(char(*pstr)[6])应改为void fun(char*pstr[6])第2处:if(strcmp(*(pstr+i),pstr+j)>0)应改为if(strcmp(*(pstr+i),*(pstr+j))>0)第3处:*(pstr+i)=pstr+j;应改为*(pstr+i)=*(pstr+j);第57题答案第1处:while(i>j)应改为while(i<j)或while(j>i)第2处:c=0;应改为*c='\0';或*c=0; 第58题答案第1处:for(i=0;i<=s1;i++)应改为for(i=0;i<s1;i++)第2处:t[s1]='\0';应改为t[2*s1]='\0'; 第59题答案第1处:void fun(char*s,int num[5]);应改为void fun(char*s,int num[5]) 第2处:num[i]=0;应改为num[k]=0; 第3处:switch(s)应改为switch(*s) 第60题答案第1处:if(i%k!=0)应改为if(i%k==0)第2处:if(k<i)应改为if(k>=i)第61题答案第1处:fun(int m)应改为double fun(int m)第2处:for(i=100,i<=m,i+=100)应改为for(i=100;i<=m;i+=100) 第62题答案第1处:break应改为break;第63题答案第1处:i=1;应改为i=0;第2处:while(i<3||*p)应改为while(i<3&&*p)第3处:b[k]='';应改为b[k++]='';第64题答案第1处:c=c-32;应改为c=c+32;第2处:c=c-5;应改为c=c+5;第65题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:s1=s1*100;应改为s1=s1*10;第66题答案第1处:fun(int n)应改为doublefun(int n)第2处:b+=c;应改为b=c;第67题答案第1处:fun(double a,double x0)应改为double fun(double a,double x0)第2处:if(abs(x1-x0)>=1e-6)应改为if(fabs(x1-x0)>=1e-6)第68题答案第1处:return 1;应改为return 3;第2处:return 3;应改为return 1;第69题答案第1处:void upfst(char p)应改为void upfst(char*p)第70题答案第1处:int fun(int*b);应改为intfun(int*b)第2处:for(k=10;k<=55;k++)应改为for(k=1;k<55;k++)第3处:return k;应改为return i;第71题答案第1处:if k>1应改为if(k>1)第72题答案第1处:int fun(char*str,*substr)应改为int fun(char*str,char*substr)第2处:for(i=0,str[i],i++)应改为for(i=0;str[i];i++)第73题答案第1处:t=1.0-1/i;应改为t-=1.0/i;或t=t-1.0/i;或t-=(double)1/i;第2处:应填return t;第74题答案第1处:c=aa[i];应改为ch=aa[i];第75题答案第1处:int fun(int m,int xx[][])应改为int fun(int m,int xx[][M])第2处:printf("%4f",xx[i][j]);应改为printf("%4d",xx[i][j]);第76题答案第1处:long s1=0;应改为long s1=1;第2处:s\=10;应改为s/=10;第77题答案第1处:void fun(char a)应改为voidfun(char*a)第78题答案第1处:k++应改为k++;第2处:if(m=k)应改为if(m==k)第79题答案第1处:c[t]="\0";应改为c[t]='\0';第80题答案第1处:fun(int n)应改为doublefun(int n)第2处:s=s+(Double)a/b;应改为s=s+(double)a/b;第81题答案第1处:fun(int n)应改为doublefun(int n)第2处:for(i=2;i<n;i++)应改为for(i=2;i<=n;i++)第82题答案第1处:result*=--n;应改为result*=n--;第2处:应填return result;第83题答案第1处:void fun(int x,int y)应改为void fun(int*x,int*y)第2处:t=x;x=y;y=t;应改为t=*x;*x=*y;*y=t;第84题答案第1处:void fun(int m,int k);应改为void fun(int m,int k)第2处:aa[i]=m/k;应改为aa[i]=m%k;第3处:printf("%d",aa[i]);应改为printf("%d",aa[i-1]);第85题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[i]='\0';应改为s[j]='\0';第86题答案第1处:float*k;应改为float k;第2处:if(*s<*p)应改为if(*s>*p)第87题答案第1处:void fun(int a)应改为voidfun(int a[M])或void fun(int a[])或void fun(int*a)第2处:a[j]=a[j+1];应改为a[j]=a[j-1];第88题答案第1处:for(i=0;i<=3;i++)应改为for(i=1;i<=3;i++)第2处:if(k>=1&&k<=6)应改为if(k>=0&&k<=6)*zero=count; 第89题答案第1处:for(i=1;i<y;i++)应改为for(i=1;i<=y;i++)第2处:t=t/1000;应改为t=t%1000;第90题答案第1处:d=0;应改为d=1;第2处:s=1;应改为s=0;第3处:s=s/10;应改为d=d/10;第91题答案第1处:for(i=strlen(t);i;i--)应改为for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)第2处:if(t[j]<t[j+1])应改为if(t[j]>t[j+1])第92题答案第1处:long s=0,t=1;应改为longs=0,t=0;第2处:for(j=0;j<=n;j++)应改为for(j=0;j<n;j++)第3处:t=t%10;应改为t=t/10;第93题答案第1处:while(t>=num)应改为while(fabs(t)>=num)第2处:t=s%n;应改为t=s/n;第94题答案第1处:int sum=0.0;应改为doublesum=0.0;第2处:sum\=c;应改为sum/=c;第95题答案第1处:s=s+(n+1)/n;应改为s=s+(double)(n+1)/n;第2处:return s;应改为return t;第96题答案第1处:fun(int k)应改为doublefun(int k)第2处:return s应改为return s;第97题答案第1处:f(double x)应改为doublef(double x)第2处:return s应改为return s;第98题答案第1处:#define FU(m,n)(m/n)应改为#define FU(m,n)(m)/(n)第2处:Return(value);应改为return(value);第99题答案第1处:int i,j,k,sum;应改为inti,j=0,k,sum;第2处:if(sum%4=2)应改为if(sum%4==2)第100题答案第1处:if(t=0)应改为if(t==0)第2处:zero=count;应改为。
最新最全二级c语言上机题105套参考答案
1. 程序填空题(1) M (2) < (3) k2. 程序改错题(1) || 改为&& if((tt[i]>=‟a‟ && (tt[i]<=‟z‟))(2) +改为-tt[i]-=32;3. 程序设计题void fun( int m, int *k, int xx[] ){int i,j;int n=0;for(i=4;i<m;i++){for (j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*k=n;}第2套题参考答案1.程序填空题(1) j++ 或j+=1, ++j, j=j+1 (2) s[i]=t1[i] (3) j2. 程序改错题(1) 将,改为; for(j=i+1; j<6; j++)(2) *(pstr+j) *(patr+i)=pstr+j;3.程序设计题int fun(char *ss, char c){int i, n=0;for(i=0;ss[i]!='\0';i++)if(ss[i]==c)n++;return n;}另一种写法int fun(char *ss, char c){int i=0;for(;*ss!='\0';ss++)if(*ss==c)i++;return i;}1. 程序填空题(1) && (2) 0 或者…\0‟(3) s[j] 或*(s+j)2. 程序改错题(1)将<改为<= for(i=2; i<=m; i++)(2)将1改为1.0 y+=1.0/(i*i); y+=(double)1/(i*i);3. 程序设计题void fun ( int a[3][3], int b[3][3]){int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}第4套参考答案1.程序填空题(1) s[i] (2) …9‟(3) *t=n2.程序改错题(1) t=*x; *x=y;(2) return t;3.程序设计题void fun (int *a, int *n){int i,k=0;for(i=1; i<1000; i++)if(((i%7==0) || (i%11==0)) && (i%77 !=0))a[k++]=i;*n=k;}第5套参考答案1.程序填空题(1) 1 (2) s[k]或*(s+k) (3) c2.程序改错题(1) long s=0, t=0; (2) t=t/10;3.程序设计题void fun(char *tt, int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;for(i=0; tt[i]!='\0'; i++)if((tt[i]>='a') && (tt[i]<='z'))pp[tt[i]-'a']++;} //tt[i]可以用*tt代替,i++可以用tt++代替,省略i=0第6套参考答案1.程序填空题(1) t=i; (2) i (3) …\0‟或者02.程序改错题(1)while(fabs(t)>=num)(2)t=s/n;3.程序设计题void fun (char a[], char b[], int n){int i,j=0;for(i=0;a[i]!=0;i++)if(i!=n)b[j++]=a[i];b[j]='\0';}第7套参考答案1.程序填空题(1) …\0‟(2) 0 (3) c2.程序改错题(1) double sum=0.0; (2) sum/=c;3.程序设计题float fun(int n){int i, t=0;float s=0.0;for(i=1;i<=n;i++){t=t+i;s=s+1.0/t;}return s;}第8套参考答案1.程序填空题(1) i++ (2) m (3) m2.程序改错题(1)while((high>=2) && (n<10) ) //丢了括号(2)break; //丢了分号3.程序设计题double fun(){double x1=0.0, x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=0.000001);return x1;}第9套参考答案1.程序填空题(1) N (2) N-1 (3) 02.程序改错题(1) s=s+(double)(n+1)/n (2) return t;3.程序设计题int fun( int t){int f0=0, f1=1,f;do{f=f0+f1;f0=f1;f1=f;}while(f<t);return f;}第10套参考答案1.程序填空题(1) 0 (2) j-- (3) j2.程序改错题(1) double f(double x) (2) return s;3.程序设计题double fun( int m ){double s=0.0,t=0.0;int i;for(i=1;i<=m;i++)t=t+log(i);s=sqrt(t);return s;}第11套参考答案1.程序填空题(1) N (2) t[i][j] (3) t[j][i]2.程序改错题(1) (m)/(n) (2) value3.程序设计题void fun( char *a ){char *p=a;int i=0;while (*p!='\0' && *p=='*'){p++;}while(*p!='\0'){a[i++]=*p;p++;}a[i]='\0';}另一种解法,用指针void fun( char *a ){char *p=a;while (*p=='*') p++;for (;*p!='\0';p++,a++)*a=*p;*a='\0';}第12套参考答案1.程序填空题(1) t[][N] (2) i=0; i<N; (3) s2.程序改错题(1) int fun(…) (2) else if(m>a[mid])3.程序设计题void fun( char *a, char *p ){char *t=a;int i=0;for(; t<=p;t++)if(*t!='*')a[i++]=*t;for(;*t!=0;t++)a[i++]=*t;a[i]='\0';}另一种用指针void fun( char *a, char *p ){char *t=a;for(; t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!=0;t++)*(a++)=*t;*a='\0';}第13套参考答案1.程序填空题(1) sum=0; (2) t[i][i] (3) 12.程序改错题(1) double r; (2) while(fabs(n-m)>0.001)3.程序设计题void fun( char *a, char *h,char *p ){int i=0;char *q=a;while(q<h){ a[i]=*q; i++; q++; }while(q<=p){if(*q!='*'){a[i]=*q; i++;}q++;}while(*q){ a[i]=*q; i++; q++; }a[i]=0;}第14套参考答案1. 程序填空题(1)1 (2) j++ (3) j2. 程序改错题(1) t=a; a=b; b=t; (2) return b;3. 程序设计题void fun( char *a ){int i=0;char *p=a;while(*p){if(*p!='*')a[i++]=*p;p++;}a[i]=0;}另一种用for循环void fun( char *a ){int i, j=0;for(i=0; a[i]!=\0‟; i++){if(a[i]!='*')a[ij++]=a[i];}a[j]=0;}第15套参考答案1. 程序填空题(1)a[i]%2==0 (2) a[j] (3) j2. 程序改错题(1) int fun(int n) (2)if(n==1)3. 程序设计题void fun( char *a,int n ){int i=0, j=0;char *p=a, *q=a;while (*p)p++;p--;while(*p=='*'){i++;}if(i>n){while(*q && q<(p+n+1)){a[j++]=*q;q++;}a[j]=‟\0‟;}第16套参考答案1. 程序填空题(1)a[i] (2) a[j] (3) a[j]2. 程序改错题(1)去掉分号(2)case 1: case 2 : return 1;3. 程序设计题void fun(STREC *a){int i;double sum=0.0, average;for(i=0;i<N;i++)sum=sum+a->s[i];average=sum/N;a->ave=average;}第17套参考答案1. 程序填空题(1)a[] (2) 2 (3) i+12. 程序改错题(1)sum=0.0 (2)if((i+1) % 5==0)3. 程序设计题double fun( STREC *a, STREC *b, int *n ){double sum=0.0, ave;int i,j=0;for(i=0;i<N; i++)sum=sum+a[i].s;ave=sum/N;for(i=0;i<N;i++)if(a[i].s<ave)b[j++]=a[i]; //结构体整体赋值return ave;}第18套参考答案1. 程序填空题(1) 1 (2) i (3) a[p+i]2. 程序改错题(1)float k; (2)if(*a<*c)3. 程序设计题int fun( STREC *a, STREC *b ){int max, i,j=0;max=a[0].s;for(i=1; i<N; i++)if(a[i].s>max)max=a[i].s;for(i=0;i<N;i++)if(a[i].s==max)b[j++]=a[i];return j;}第19套参考答案1. 程序填空题(1)char (2) ch=‟9‟(3) …0‟2. 程序改错题(1) b[k]=*p (2)b[k++]= “”; 或者b[k]=”“; k++;3. 程序设计题double fun( STREC *h ){double sum=0, ave;STREC *p=h->next ;while(p!=NULL){sum=sum+p->s;p=p->next ;}ave=sum/N;return ave;}第20套参考答案1. 程序填空题(1) n/2 (2) i (3) a[n-1-i]2. 程序改错题(1) n=*-…0‟ (2) n=n*8+p-…0‟;3. 程序设计题STREC fun( STREC *a, char *b ){int i;STREC str={"\0",-1};for(i=0;i<16;i++)if(strcmp(a[i].num,b)==0)str=a[i];return str;}第21套参考答案1.程序填空题(1) 999 (2) t/10 (3) x2.程序改错题(1) void fun(long s, long *t) (2) while(s>0) 3.程序设计题void fun( STREC a[] ){int i, j, k;STREC t;for(i=0; i<N-1; i++){k=i;for (j=i+1;j<N;j++)if(a[j].s>a[k].s)k=j;if(k!=i){t=a[i]; a[i]=a[k]; a[k]=t;}}}第22套参考答案1.程序填空题(1) 0 (2) x (3) t++2.程序改错题(1) int i, s1; (2) s[s1-i-1]3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*100+(a%10)*1+(b/10)*1000+(b%10)*10;}第23套参考答案1.程序填空题(1) 0 (2) x*10 (3) n/102.程序改错题(1) *t=0; (2) if(d%2==1)3.程序设计题void fun(char p1[], char p2[]){int i,j;for(i=0;p1[i]!='\0';i++);for(j=0;p2[j]!='\0';j++)p1[i+j]=p2[j];p1[i+j]='\0';}第24套参考答案1.程序填空题(1) 1 (2) s>0 (3) i*102.程序改错题(1)int fun(int n, int xx[][M]) (2) printf( "%d", xx[i][j] );3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*1000+(a%10)*10+(b/10)*1+(b%10)*100;}第25套参考答案1.程序填空题(1) 0.0 (2) n (3) (t*t)2.程序改错题(1) for(i = 0; str[i]!='\0'; i++) (2) if(substr[k+1]=='\0')3.程序设计题double fun ( double eps){double s=1,p1=1,p2=1,t=1;int i=1;while(t>eps){p1=p1*i;p2=p2*(2*i+1);t=p1/p2;s=s+t;i++;}return 2*s;}第26套参考答案1.程序填空题(1) 10 (2) 0 (3) x2.程序改错题(1) if (n==0) (2) result=result*(n--); or result*=n--;3.程序设计题long fun ( char *p){long n=0;int flag=1, m;if(*p=='-'){p++; flag=-1;}else if (*p=='+'){p++;}while(*p!=0){m=*p-'0';n=n*10+m;p++;}n=flag*n;return n;}第27套参考答案1.程序填空题(1) (double)(2*k+1) or (double)3 (2)> (3)(t+1)2.程序改错题(1) double fun ( int n ) //教材没错,原题是void(2) s = s + (double)a / b;3.程序设计题int fun (int a[][M]){int i, j, max;max=a[0][0];for(i=0;i<2;i++){for(j=0;j<M;j++)if(a[i][j]>max)max=a[i][j];}return max;}第28套1.程序填空题(1) 1 (2) i*2 (3)-12.程序改错题(1) k++; //丢了分号(2) if(m==k)3.程序设计题void fun(int a[],int n, int *max, int *d){int i;*max=a[0]; *d=0;for(i=1;i<n;i++)if(a[i]>*max){ *max=a[i]; *d=i; }}第29套1.程序填空题(1) 0 (2) i++ ((2.0*i)*(2.0*i))2.程序改错题(1) void fun (char *s, char *t) (2) t[2*d] = '\0';3.程序设计题void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(i%2!=0 && s[i]%2!=0)t[j++]=s[i];t[j]='\0';}第30套1.程序填空题(1) s[i] (2) k (3) 02.程序改错题(1) while ( *w ) //原题无* (2) if(*r==*p) 3.程序设计题void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(s[i]%2==0)t[j++]=s[i];t[j]=0;}第31套参考答案1.程序填空题(1) k (2) N (3) a[k][i]2.程序改错题(1) for(i=strlen(t)-1;i;i--) //教材正确(2) if(t[j]>t[j+1]) 3.程序设计题void fun(char *ss){int i,j,n;n=strlen(ss);for(i=0;i<n;i++)if(i%2==1 && ss[i]>='a' && ss[i]<='z')ss[i]=ss[i]-32;}第32套参考答案1.程序填空题(1) k (2) N-1 (3) temp2.程序改错题(1) void fun(int a[][M], int m) (2) a[j][k] = (k+1) * (j+1) ;3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*10+(a%10)*1000+b/10+(b%10)*100;}第33套参考答案1.程序填空题(1) j (2) 0 (3) i++2.程序改错题(1) for(i = 2 ; i <= m ; i++) (2) y -= 1.0 /(i * i) ;3.程序设计题int fun(int score[],int m, int below[]){double sum=0.0, ave;int i,j=0;for(i=0;i<m;i++)sum=sum+score[i];ave=sum/m;for(i=0;i<m;i++)if(score[i]<ave)below[j++]=score[i];return j;}第34套参考答案1.程序填空题(1) t, s (2) s[i] (3) 02.程序改错题(1) if (i%k==0) (2) if (k==i)3.程序设计题void fun (int x, int pp[], int *n){int i,j=0;for(i=1;i<x;i++)if(x%i==0 && i%2==1)pp[j++]=i;*n=j;}第35套参考答案1.程序填空题(1) s (2) -- (3)return 02.程序改错题(1) double fun (int n) (2) s=s+(double)a/b;3.程序设计题void fun(int m,int k,int xx[]){int i, j;m=m+1;j=0;while(j<k){ for(i=2;i<m;i++)if(m%i==0)break;if(m==i)xx[j]=i; j++;}m++;}}另一种用for循环编写的void fun(int m,int k,int xx[]){int i, j, n;for(i=m+1,n=0; n<k;i++){ for(j=2;j<i;j++)if(i%j==0)break;if(i==j) xx[n++]=i;}}第36套参考答案1.程序填空题(1) n++ (2) 0 (3)s++2.程序改错题(1) t=t+s[k]; or t+=s[k] ; (2) *aver=ave;3.程序设计题int fun(int *s,int t,int *k){int i, max;max=s[0]; *k=0;for(i=1;i<t;i++)if(s[i]>max){ *k=i;max=s[i];}}第37套参考答案1.程序填空题(1) *s (2) s++ (3) n2.程序改错题(1) { //丢了函数的括号(2) if (x[j]>=xa) //不是=> 3.程序设计题float fun(int m, int n){float p1=1,p2=1, p3=1;float p;if(m<n){t=m;m=n;n=t;}for(i=1;i<=m;i++)p1=p1*i;for(j=1;j<=n;j++)p2=p2*j;for(k=1;k<=(m-n);k++)p3=p3*k;p=p1/(p2*p3);return p;}可以先建立一个求阶乘的函数,然后调用long jc(int m){long s=1;int i;for(i=1;i<=m;i++) s=s*i;return s;}float fun(int m, n){float p;p=1.0*jc(m)/jc(n)/jc(m-n);}第38套参考答案1.程序填空题(1) …0‟or 48 (2) s++ (3) sum2.程序改错题(1) if((k%13==0)||(k%17==0)) (2) }3.程序设计题double fun( int n){int i;double sum=0.0;for(i=0;i<n;i++)if(i%3==0 && i%7==0)sum=sum+i;sum=sqrt(sum);return sum;}第39套参考答案1.程序填空题(1) *s (2) 1 (3) k[n]2.程序改错题(1) double float fun(int k) (2) return s;3.程序设计题double fun(int n){double s=0.0, t;int i;for(i=1;i<=n;i++){t=1.0/(i*(i+1));s=s+t;}return s;}第40套参考答案1.程序填空题(1) i (2) ps[j] (3) tp2.程序改错题(1) double fun(int n) (2) return sum; 3.程序设计题double fun(double x, int n){double s=1.0,t=1.0, p=1.0;int i;for(i=1;i<=n;i++){t=t*x;p=p*i;s=s+t/p;}return s;}第41套参考答案1.程序填空题(1) double (2)f1 (3)f32.程序改错题(1) while(p!=NULL) (2) p=p->next3.程序设计题int fun(char *str){int n=0,i,flag=1;char *p=str;while(*p!='\0'){n++;p++;}for(i=0;i<n/2;i++){ if(str[i]==str[n-i-1]);else{flag=0;break;}}return flag;}第42套参考答案1.程序填空题(1) h->next (2) p->next (3)>2.程序改错题(1) p=h->next; (2) p=p->next;3.程序设计题void fun (int (*s)[10], int *b, int *n, int mm, int nn){int i,j,k=0;for(i=0;i<mm;i++)for(j=0;j<nn;j++)b[k++]=s[i][j];*n=k;}第43套参考答案1.程序填空题(1) NODE (2) next (3)r2.程序改错题(1) if(i%2 || s[i]%2==0) (2) t[j]='\0';3.程序设计题void fun (int (*s)[10], int *b, int *n,int mm, int nn){int i,j,k=0;for(i=0; i<nn;i++)for(j=0;j<mm;j++)b[k++]=s[j][i];*n=k;}第44套参考答案1.程序填空题(1) next (2) NULL (3) r2.程序改错题(1) r=t; (2) r=t;3.程序设计题void fun(char a[M][N],char *b){int i,j,k=0;for(i=0;i<M;i++)for(j=0; a[i][j]!='\0'; j++)b[k++]=a[i][j];b[k]='\0';}第45套参考答案1.程序填空题(1) p->next (2) q (3)p->next2.程序改错题(1) while(*s!= '\0') (2) s++;3.程序设计题void fun(int *w, int p, int n){int i,j,t;for(i=0;i<=p;i++){t=w[0];for(j=0;j<n-1;j++)w[j]=w[j+1];w[j]=t;}第46套参考答案1.程序填空题(1)double (2)f1 (2) f22.程序改错题(1)char* fun(char *s, *t) (2) ss++ (3) tt++3.程序设计题void fun (char *w,int m){int i,j,n;char ch;n=strlen(w);for(i=0;i<3;i++){ch=w[0];for(j=1;j<n;j++)w[j-1]=w[j];w[j-1]=ch;}}第47套参考答案1.程序填空题(1) x (2) p (3) s2.程序改错题(1) long k=1; (2) num/=10;3.程序设计题float fun ( float *a , int n ){int i;float ave=0;for(i=0;i<n;i++)ave=ave+a[i];ave=ave/n;return ave;}第48套参考答案1.程序填空题(1) FILE * (2) fp (3) ch2.程序改错题(1) s[j++]=s[i]; (2) s[j]='\0';3.程序设计题void fun(char (*s)[N],char *b){int i,j,k=0;for(i=0;i<N;i++)for(j=0;j<M;j++)b[k++]=s[j][i];b[k]='\0';}第49套参考答案1.程序填空题(1) N (2) k (3) ss[i]2.程序改错题(1) int k=0; (2) while(*p || *q)3.程序设计题#include <stdio.h>void fun( char *a ){int i=0;char *p=a;while(*p && *p=='*'){a[i]=*p;i++;p++;}while(*p){if(*p!='*'){a[i]=*p;i++;}p++;}a[i]='\0';}第50套参考答案1.程序填空题(1) fw (2) str (3) str2.程序改错题(1) void fun (long s, long *t) (2) sl = sl*10;3.程序设计题int fun( STREC *a, STREC *b ){int i,n=0;*b=a[0];for(i=1;i<N;i++)if(a[i].s<b->s)*b=a[i];for(i=0;i<N;i++)if(a[i].s==b->s){b[n]=a[i];n++;}return n;}第51套参考答案1.程序填空题(1) k (2) len (3)ss[i][j]2.程序改错题(1) result*=n—…(2) return result;3.程序设计题void fun( char s[],int c){int j=0,n;char *p=s;while(*p!='\0'){ if(*p!=c)s[j++]=*p;p++;}s[j]='\0';}第52套参考答案1.程序填空题(1) x (2) n (3) t2.程序改错题(1) d=1; (2) s=0; (3) d=d/10;3.程序设计题double fun(double x[9]){int i;double s=0.0,t;for(i=0;i<8;i++){t=sqrt((x[i]+x[i+1])/2);s=s+t;}return s;}第53套参考答案1.程序填空题(1) STU (2) std[i].num (3) std[i]2.程序改错题(1) if(*r==*p) {r++; p++;} (2) if(*r==‟\0‟)3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if(s[i] % 2==1)t[j++]=s[i];t[j]=0;}第54套参考答案1.程序填空题(1) std[i].year (2) std[i] (3) n2.程序改错题(1) IsPrime(int n) (2) if(!(n%i))3.程序设计题fun(STU a[], STU *s){int i;*s=a[0];for(i=1;i<N;i++)if(a[i].s>s->s)*s=a[i];}第55套参考答案1.程序填空题(1) STU (2) score[i] (3) &std2.程序改错题(1) if(k>1)3.程序设计题void fun(int a[ ][N], int n){int i,j;for(i=0;i<N;i++)for(j=0;j<i;j++)a[i][j]=a[i][j]*n;}第56套参考答案1.程序填空题(1) std[] (2) PERSON (3) std2.程序改错题(1) int k, q, i; (2) pt[i]=str[k][i];3.程序设计题void fun (int a[][N]){int i,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]=0;}第57套参考答案1.程序填空题(1) std[0] (2) std[i].age (3) 2.程序改错题(1) void fun(int *a, int *b) (2) t=*b;*b=*a;*a=t;3.程序设计题void fun(int tt[M][N],int pp[N]){int i,j,max;for(i=0;i<N;i++){max=tt[0][i];for(j=0;j<M;j++)if(tt[j][i]>max)max=tt[j][i];pp[i]=max;}pp[i]=0;}第58套参考答案1.程序填空题(1) a[i] (2) m%10 (3) m/102.程序改错题(1) b[i] = a[i][0]; (2) for (j=1; j<N; j++) (3) if ( b[i] > a[i][j] ) 3.程序设计题double fun(double a[ ] , int n){int i,j;double min,max,sum;min=max=a[0];sum=a[0];for(i=1;i<n;i++){sum=sum+a[i];if(a[i]>max) max=a[i];if(a[i]<min) min=a[i];}sum=sum-max-min;return sum/(n-2);}第59套参考答案1.程序填空题(1) i+1 (2) k=j (3) t2.程序改错题(1) void fun(char *str, char ch ) (2) if ( *str != ch ) (3) str[1] = '\0';3.程序设计题void fun(char*s){int i,n;char t;n=strlen(s);for(i=0;i<n/2;i++){t=s[i];s[i]=s[n-i-1];s[n-i-1]=t;}}第60套参考答案1.程序填空题(1) *n (2) next (3) head2.程序改错题(1) a=NULL; (2) if(*r==*p)3.程序设计题void fun(int a, int b, long *c){*c=(a%10)*1000+(a/10)*10+b%10+(b/10)*100;}第61套参考答案1.程序填空题(1) ss[i] (2) j+n (3) 12.程序改错题(1) if (*p==' ') (2) *(p-1)=toupper( *(p-1));3.程序设计题void fun(char *s,int num){int i,j,k;char *p=s;char ch;for(i=1;i<num-1;i++){ch=p[i];k=i;for(j=i+1;j<num-1;j++)if(p[j]>p[k])k=j;p[i]=p[k];p[k]=ch;}第62套参考答案1.程序填空题(1) [N] (2)len (3) *n=len2.程序改错题(1) t+=1.0/i; (2) return t;3.程序设计题int fun(char *str, char *substr){char *r,*p;int n=0;while(*str){p=str;r=substr;while(*r){ if(*p==*r) {p++; r++;}elsebreak;}if(*r=='\0') n++;str++;}return n;}另一种解法int fun(char *str, char *substr){int i, j=0;for(i=0;str[i+1]!=‟\0‟;i++)if(str[i]==substr[0] && str[i+1]==substr[1]) j++;return j;}第63套参考答案1.程序填空题(1) && (2) …A‟(3) ch2.程序改错题(1) void fun(int a[]) //答案是void fun(int *a) (2) a[j]=a[j-1];3.程序设计题int fun(int n){int i,j,s=0;for(i=2;i<n;i++)if(n%i==0)s=s+i;return s;}第64套参考答案1.程序填空题(1)1.0 (2) -1 (3)t2.程序改错题(1) for(i=1;i<=3;i++) (2) if(k>=0 && k<=6)3.程序设计题double fun(int n){int i,p=1;double s=1.0,t=1.0;for(i=1;i<=n;i++){p=p*i;t=1.0/p;s=s+t;}return s;}第65套参考答案1.程序填空题(1)x (2)n (3)fabs(t)2.程序改错题(1) for(i=1;i<=y;i++) (2) t=t%1000;3.程序设计题double fun(double x){double s=1.0,t;int n=1;t=0.5*x;s=s+t;do{n++;t*=(0.5-n+1)*x/n;s=s+t;}while(fabs(t)>=1e-6);return s;}第66套参考答案1.程序填空题(1) 1.0 (2) 1 (3) i2.程序改错题(1) k=i; (2) b=k%10;3.程序设计题double fun(double x[10]){int i;double s=0.0, ave;for(i=0;i<10;i++)s=s+x[i];ave=s/10;s=0.0;for(i=0;i<10;i++)s=s+pow((x[i]-ave),2); //平方等于两个相乘,0.5次方等于开平方s=s/10;s=pow(s,0.5);return s;}第67套参考答案1.程序填空题(1) tt (2) tt.score[i] (3) std2.程序改错题(1) void fun(int *a,int n) //去掉分号(2) m=i;3.程序设计题unsigned fun(unsigned w){unsigned i;int s=1,sum=0,t;do{t=w%10;t=t*s;sum=sum+t;s=s*10;w=w/10;}while(w>=10);return sum;} //另一种思路是求w的位数,对n-1位取余数第68套参考答案1.程序填空题(1)q (2) next (3) next2.程序改错题(1) p=j; (2) p=i;3.程序设计题void fun ( int m, int *a , int *n ){int i,j=0;for(i=1;i<=m;i++)if((i%7==0)||(i%11==0))a[j++]=i;*n=j;}第69套参考答案1.程序填空题(1) N (2) i (3) -12.程序改错题(1) a2=k/10; (2)return i;3.程序设计题void fun( char *a ){char *p;int i=0,j=0;p=a;while(*p){i++;p++;}p--;while(*p=='*'){ p--;j++;}a[i-j]=0;}第70套参考答案1.程序填空题(1) next (2) t->data (3) t2.程序改错题(1) void fun (char *a) //丢* (2) printf("%c", *a) ; //丢,3.程序设计题char *fun ( char *s, char *t){int i,j;for(i=0;s[i]!='\0';i++);for(j=0;t[j]!='\0';j++);if(i>=j) return s;else return t;}第71套参考答案1.程序填空题(1) “r”(2) fs (3) ft2.程序改错题(1) if (d%2==0) (2) s /= 10;3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if((i%2==0) &&(s[i]%2==0))t[j++]=s[i];t[j]='\0';}第72套参考答案1.程序填空题(1) a (2) (3) score[i]2.程序改错题(1) s[j++]=s[i]; (2) s[j]=0;3.程序设计题void fun( char *a ){int i,j,n=0;char t;char*p=a;for(i=0;p[i]!='\0';i++)n++;while(*p=='*'){t=p[0];for(i=1;i<n;i++)p[i-1]=p[i];p[i-1]=t;}}另一种思路void fun( char *a ){int i=0,n=0;char*p=a;while(*p=='*'){ n++; p++;} //统计*的个数while(*p){ a[i]=*p ; i++ ; p++} //将前导*后的字符传递给awhile(n!=0) //后面补*{a[i]=‟*‟;i++;n--;}a[i]=‟\0‟}第73套参考答案1.程序填空题(1) N (2) substr (3) 02.程序改错题(1) fun(int x, int y, int z ) (2) return j;3.程序设计题void fun( char *a, int n,int h,int e ){char *p;int i;for(i=0;i<(n-h-e);i++)a[i]=a[h+i];a[i]='\0';}第74套参考答案1.程序填空题(1) data (2) next (3) head2.程序改错题(1) while ( *r ) (2) *a = *r; a++; r++; //r++丢分号3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=1;s[i]!='\0';i+=2)t[j++]=s[i];t[j]=0;} //可以先求一下字符串的长度strlen第75套参考答案1.程序填空题(1) struct student (2) n-1 (3) a[i].name, a[j].name2.程序改错题(1) q=p+i; (2) while(q>p )3.程序设计题int fun( STREC *a,STREC *b,int l, int h ){int i,j=0;for(i=0;i<N;i++)if(a[i].s>=l && a[i].s<=h)b[j++]=a[i];return j;}第76套参考答案1.程序填空题(1) b->sno (2) ->name (3) &t2.程序改错题(1) double fun(double a, double x0) (2) if( fabs(x1-x0)>=0.00001 ) 3.程序设计题double fun( STREC *a, STREC *b, int *n ){int i,j=0;double ave,sum=0.0;for(i=0;i<N;i++)sum=sum+a[i].s;ave=sum/N;for(i=0;i<N;i++)if(a[i].s>=ave)b[j++]=a[i];*n=j;return ave;}第77套参考答案1.程序填空题(1) STYPE (2)FILE (3) fp2.程序改错题(1) for( i=0; i<sl; i++) (2) t[s1*2] = '\0';3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*1000+(a%10)*10+(b/10)*100+b%10;}第78套参考答案1.程序填空题(1) fp (2) == (3) fp2.程序改错题(1) n=strlen(aa); (2) ch=aa[i];3.程序设计题double fun( STREC *h ){STREC *p=h->next;double max=p->s;while(p!=NULL){if(p->s>max)max=p->s;p=p->next;}return max;}第79套参考答案1.程序填空题(有问题)2.程序改错题(有问题)3.程序设计题void fun(int a, int b, long *c){*c=a/10+(a%10)*100+(b/10)*1000+(b%10)*10;}第80套参考答案1.程序填空题(1) FILE * (2) fclose(fp) (3) fp2.程序改错题(1) t=calloc(m,sizeof(STU)); (2) t[k]=b[j];3.程序设计题int fun(int a[], int n){int i, j=1;for(i=1;i<n;i++)if(a[i-1]!=a[i])a[j++]=a[i];return j;}第81套参考答案1.程序填空题(1) [M] (2) N (3) 02.程序改错题(1) t=1.0; (2) return (2*s)3.程序设计题void fun( char *a, int n ){char *p=a;char *q=a;int i=0,j=0;while(*p=='*'){p++; i++;}if(i>n){while(*q){a[j++]=*(q+i-n); q++;}a[j]='\0';}}第82套参考答案1.程序填空题(1) fp (2) fclose(fp) (3) fname2.程序改错题(1) for ( i=j+1; i<n ; i++ ) (2) p=i;3.程序设计题void fun(int a, int b, long *c){*c=a/10+(a%10)*100+(b/10)*10+(b%10)*1000;}第83套参考答案1.程序填空题(1) NULL (2)n (3) head, ch2.程序改错题(1) for (i = 0,t = 0; p[i] ; i++) (2) c[t]='\0';3.程序设计题void fun ( char *ss ){int i;for(i=1;ss[i]!='\0';i+=2)if(ss[i]>='a' && ss[i]<='z')ss[i]=ss[i]-32;}第84套参考答案1.程序填空题(1) struct student * (2) a->score[i] (3) a2.程序改错题(1) char *fun(char (*sq)[M]) (2) return sp;3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*100+a%10+(b/10)*10+(b%10)*1000;}第85套参考答案1.程序填空题(1) 0 (2) && (3) 12.程序改错题(1) t=t-1.0/i; (2) return t;3.程序设计题void fun (char *str){char *p=str;int i=0;while(*p!='\0'){ if(*p!=' ')str[i++]=*p;p++;}str[i]='\0';}第86套参考答案1.程序填空题(1) j=2 (2) i (3)j2.程序改错题(1)j=0 (2) if(sum%4==2)3.程序设计题double fun(int n){int i;double s=0,t=0;for(i=1;i<=n;i++){t=1.0/(2*i-1)-1.0/(2*i);s=s+t;}return s;第87套参考答案1.程序填空题(1) 0 (2) t (3) i+t2.程序改错题(1) b[i] = 0; (2) b[a[i] - 'a']++; (3) if (b[max] < b[i]) 3.程序设计题(答案评分有问题)long fun( char *s ){int n, i, j;long m=0;n=strlen(s);for(j=0;j<n;j++){i=s[j]-48;m=m*10+i;}return m;}另一种解法int i,sum=0,len;len=strlen(s);for(i=0;i<len;i++){sum=sum*10+*s-48;s++;}return sum;第88套参考答案1.程序填空题(1) “r”(2) > (3) fwrite2.程序改错题(1) p=s (2) while(*p++);3.程序设计题void fun(int *a, int *b){int i,j;for(i=0;i<M;i++)b[i]=0;for(i=0;i<N; i++){j=a[i]/10;if(j>=0 && j<=9)b[j]++;elseb[10]++;}}第89套参考答案1.程序填空题(1) b[k] (2) N/2 (3) <2.程序改错题(1) int t[N] ,i, num=0; (2) t[num++]=b[i]; (3) for(i=0; i<num; i++) 3.程序设计题int fun(char *s){int n=0;while(*s){if(*s>='0' && *s<='9')n++;s++;}return n;}第90套参考答案1.程序填空题(1) j (2) k (3) p2.程序改错题(1) while ( i < j ) (2) if ( *a )3.程序设计题void fun(char *s, char t[]){int len,i,j=0;len=strlen(s);for(i=0;i<len;i++)if(i%2==0 && s[i]%2==1);elset[j++]=s[i];t[j]=0;}第91套参考答案1.程序填空题(1) i%5 (2)\n (3) a[i]2.程序改错题(1) return t; (2) for(i=0;i<N;i++) t[i]=x[i]; (3) x[i+1]=findmid(a,b,c);3.程序设计题int fun( int *s, int x){int i;for(i=0;i<N;i++)if(s[i]==x)break;if(i==15)return -1;elsereturn i;}第92套参考答案1.程序填空题(1) pb (2) p->data (3) p->next2.程序改错题int i, one=0, zero=0 ; (2) switch( s[i] ) (3) case 0 : zero++; break;3.程序设计题void fun( char *a , char *s){while(*s){*a=*s;a++;s++;}*a=0;}第93套参考答案1.程序填空题(1) [N] (2) i (3) i+12.程序改错题(1) void fun(int m,int k) //去掉分号(2) aa[i]=m%k; (3) printf("%d",aa[i-1]);3.程序设计题char *fun(char (*a)[81], int num, char *max){int i,len,m;max=a[0];for(i=0;i<num;i++){if(strlen(max)<strlen(a[i]))max=a[i];}return max;}第94套参考答案1.程序填空题(1) a[0][i] (2) < (3) x, y2.程序改错题(1) void fun(int *x,int *y) (2) t=*x;*x=*y;*y=t;3.程序设计题int fun(int lim, int aa[MAX]){int i,j,k=0;for(i=2;i<=lim;i++){for(j=2;j<i;j++)if(i%j==0) break;。
2023年C语言上机题库
C语言习题集3.11输入'A'~'F'中旳一种字母, 代表一种十六进制数, 将其转换为十进制数, 求该数与15旳和并输出。
输入格式:B输出格式:26#include<stdio.h>int main(void){char ch;int sum;ch=getchar();sum=ch-'A'+10+15;printf("%d\n",sum);return 0;}3.12输入三个整数, 求其平均值。
输入格式:3 5 7输出格式: 5#include <stdio.h>int main(void){int a,b,c,aver;scanf("%d %d %d",&a,&b,&c);aver=(a+b+c)/3;printf("%d\n",aver);return 0;}3.13根据c=5/9*(f-32) 公式, 输入华氏温度f, 求摄氏温度c, 成果精确到小数点后两位。
输入格式:80.0输出格式:26.67#include<stdio.h>int main(void){float f,c;scanf("%f",&f);c=5.0/9*(f-32);printf("%.2f\n",c);return 0;}3.14输入一种四位正整数, 求其各位数字之和。
例如, 1357旳各位数字之和为1 + 3 + 5 + 7 = 16。
输入格式:1357输出格式:16#include<stdio.h>int main(void){int num;int a,b,c,d,total;scanf("%d",&num);a=num/1000;b=(num-a*1000)/100;c=(num-a*1000-b*100)/10;d=num-a*1000-b*100-c*10;total=a+b+c+d;printf("%d\n",total);return 0;}3.15输入一大写字母, 输出对应旳小写字母。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一套填空:给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每名学生的编号、姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
1、STYPE2、FILE3、fp改错:给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。
1、for( i=0; i<=s1; i ++)改为for(i = 0 ; i < s l ; i++)2、t[sl] = '\0';改为t[2*sl] = '\0';程序设计:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
{*c=(a/10)*1000+(b/10)*100+(a%10) *10+(b%10);}第二套填空:给定程序的功能是:从键盘读入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1(独立一行)作为字符串输入结束的标志。
然后将文件的内容独处显示在屏幕上。
文件的读写分别由自定义函数ReadText和WriteText实现。
1、*fw2、str3、str改错:给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s 中奇数位上的数,依次构成一个新数放在t中。
高位仍在高位,低位仍在低位。
1、void fun (long s, long t)改为void fun (long s, long *t)2、sl = sl*100;改为sl = sl*10;程序设计:函数fun的功能是:将两个两位正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
{*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);}第三套填空:给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
1、fp2、fclose(fp);3、fname改错:给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。
1、for ( i=j+1; i<n-1 ; i++ )改为for ( i=j+1; i<n ; i++ )2、t=i;改为p=i;程序设计:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
{*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);}第四套填空:给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0.在复制的过程中,把复制的内容输出到终端屏幕。
主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
1、"r"2、fs3、ft改错:给定程序MODI1.C中函数fun的功能是:将长整型数众每一位上为偶数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
1、if (d%2=0)改为if (d%2= =0)2、s \= 10;改为s /= 10;程序设计:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
{*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);}第五套填空:给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。
1、x;2、p3、s改错:给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。
1、long k;改为long k=1;2、num\=10 ;改为num/=10 ;程序设计:请编写函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
{int i;1float ave=0.0;for(i=0; i<n; i++) ave=ave+a[i] ; ave=ave/n;return ave;}第六套填空:给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
1、next2、t->data3、t改错:给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
1、a改为*a2、printf("%c" *a) 改为printf("%c", *a)程序设计:请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。
如两个字符串长度相同,则返回第一个字符串。
{int i;char *p=s, *q=t;for(i=0;*p && *q; i++) {p++; q++;}if(*p = = 0 && *q = = 0) return s ; if(*p) return s ;else return t ;}第七套填空:给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
1、q2、next3、next 改错:给定程序MODI1.C中函数fun的功能是:用选择法对数组中n个元素按从小到大的顺序进行排序。
1、p = j改为p = j;2、p = j; 改为p = i;程序设计:请编写一个函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
{int i ;*n=0 ;for(i=7 ; i<=m; i++)if((i % 7 = = 0) || (i % 11 = = 0))a[(*n)++]=i ;}第八套填空:给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。
1、02、n3、head,ch改错:给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用‘#’结束输入。
1、F or改为f or2、c[t]="\0"改为c[t]='\0'程序设计:请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置中的字母转换为大写(若该位置上不是字母,则不转换)。
{int i ;for(i = 1 ; i < strlen(*ss) ; i+=2) {if(ss[i] >= 'a' && ss[i] <= 'z')ss[i] -= 32 ;}}第九套填空:给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。
1、*n2、next3、head改错:给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数输出从此地址开始的字符串;若未找到,则函数值为NULL。
1、a = Null改为a = NULL2、if ( r = = p )改为if ( *r = = *p )程序设计:函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
{int i, j = 0 ;for(i = 0 ; i < strlen(s) ; i += 2)if(s[i] % 2 == 0) t[j++] = s[i] ;t[j] = 0 ;}第十套填空:给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域中值之和作为函数值返回。
1、data2、next3、head改错:给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。
在此处,要求t1和t2所指字符串的长度相同。
1、while ( r )改为while ( *r )2、r++改为r++;2程序设计:函数fun的功能是:将s所指字符串中下标为偶数的字符串的字符删除,串中剩余字符形成的新串放在t 所指数组中。
{int i, j = 0 ;for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ;t[j] = 0 ;}第十一套填空:人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。
函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
1、STU2、std[i].num3、std[i]改错:给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找到与t 所指字符串相的子串的个数作为函数值返回。
1、p++ 改为p++;2、if ( r = = '\0' )改为if ( *r = = 0 ) 程序设计:函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。
{int i, j = 0 ;for(i = 0 ; i < strlen(s); i++) if(s[i] % 2) t[j++] = s[i] ;t[j] = 0 ;}第十二套填空:人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。
函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
1、std[i].year2、std[i]3、n改错:给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。