程序改错填空

合集下载

计算机专业模拟试卷(程序填空和程序改错)

计算机专业模拟试卷(程序填空和程序改错)

一、程序填空1、有学生表ST,其中“编号”(N,2,0)字段值从1开始连续排列。

以下程序欲按编号1,9,17,25……的规律抽取学生参加比赛,并在屏幕上显示参赛学生的编号,请填空。

USE STDO WHILE NOT EOF()IF MOD__________??编号ENDIFSKIPENDDO2、通过键盘输入读者的借书证号,在“读者”表和“借阅”表中查找该读者及借书的有关信息。

OPEN DATABASE BOOKSDO WHILE ___________ACCEPT”请输入借书证号:” TO ZHSELECT * FROM 读者,借阅WHERE读者.借书证号=借阅.借书证号AND ;读者.借书证号=ZHWAIT“继续查询(Y/N)?”TO YNIF UPPER(Y/N)<>“Y”_______________________ENDIFENDDO_______________________3、将“借阅”表中借书日期超过一年且还没有归还的记录的“标记”字段填充“*”。

USE 借阅DO WHILE _________IF 还书日期={/} AND DA TE()—借书日期>365REPLACE ___________ENDIFSKIPENDDOUSERETURN4、一个自定义函数FX,计算F(X)=EX+3X+10的值,并编写一个主程序调用FX函数,分别计算变量X由5到10(步长为1)的函数值*FX.PRGFOR I=5 TO 10?“X=”,I,“F(X)=”,_________NEXTRETURNFUNCTION FX(X)________________RETURN F5、下列程序根据输入的学生成绩,来判断学生成绩等级,其中成绩大于或等于90分的为优秀,75-90的为良好,60-74为及格,小于60分的为不及格,请正确补充程序运行。

ClearSet talk off____________(“请输入成绩:”) to cjDo caseCase cj<60Dj=”不及格”Case cj<75Dj=”及格”Case cj<90Dj=”良好”____________Dj=”优秀”Endcase? DjSet talk on6、设表STU.DBF中有“学号、姓名、性别、出生日期、班级”等字段,程序完成根据姓名进行的查询:Set talk offUse stuStore space(6) to xmIndex on 学号to xhaccept “输入姓名:” to xmlocate for 姓名=xmdisplayelse?“查无此人”EndifWait “继续吗?”to ynIf upper(yn)=”N”ExitElseLoopEndifEnddoUseSet talk off7、请阅读下列判断一个自然数是否为质数的程序,并将程序填空完整.Set talk offInput”请输入一个大于1的自然数:” to nK=0 &&K的值为0表示所输入的自然数是质数, 为1表示不是质数j=2Do while j<nIf mod(n,j)_____________________________LoopElseK=1ExitEndifIf k=0?__________________+”是质数”Endif?”再见!!”Set talk onReturn8、定义一个二维数组X(8,9),给数组元素为该元素下标组成的数值。

Java程序设计填空和改错题(参考答案解析)

Java程序设计填空和改错题(参考答案解析)

Java语言中的关键字用法1、Java语言中有4种基本的整数类型,哪种类型所占的内存空间最小,写出定义该类型的关键字_____________。

byte2、Java语言中有4种基本的整数类型,哪种类型所占的内存空间最大,写出定义该类型的关键字_____________。

long3、Java中使用_____定义的数据类型是采用Unicode编码的。

char4、Java中存在一种基本的数据类型,该类型定义的变量不能与其他类型转换,定义该类型用___________。

boolean5、布尔型定义的成员变量是有默认值的,它的值是_________。

false6、定义变量保存含有小数的数据时,使用_____定义的变量精度比较高。

double7、当一个函数没有返回值时,应该使用_______来定义该函数类型。

void8、在循环语句中,使用__________能够从循环中跳出,并结束循环。

break9、在循环语句中,使用________能够从循环中跳到循环开始位置,执行下一次循环。

continue10、当有两个比较语句需要同时满足才能得到正确结果,应使用______连接这两个比较语句。

&&11、当有两个比较语句只需要满足其中一条就能得到正确结果,应使用______连接这两个比较语句。

||12、若希望一条语句得到相反的结果时,应该在改语句前加上________。

!13、当有两个比较语句得到的结果不相同时才是正确的结果,应使用______连接这两个比较语句。

^14、在switch多分支语句中,用case后跟上各种比较的值,其余的值是使用________表示。

default15、if语句用于判断一个条件是否成立,如果成立则执行其中的语句,当不成立时执行_______中的语句。

else16、当希望一个类中的成员不能在类的外部访问时,应使用______修饰符定义该成员。

private17、使用_______修饰符定义的成员可以在类外部通过对象来直接访问。

山东春季高考C语言练习题

山东春季高考C语言练习题

C 语言程序设计1.程序填空题程序功能:定义函数 max(int a,int b),比较整数 a,b 的大小并输出较大值。

代码如下:#includeint max(int a,int b){if(【1】)return a;elsereturn 【2】;}void main(){int 【3】;printf("请输入 2 个整数:\n");scanf("%d%d", &a,&b);printf("较大值:%d \n", 【4】);}2.程序填空题代码如下:#include <stdio.h>main(){int age1, age2;printf("请输入小明和小红的年龄:");scanf("%d %d", 【1】, 【2】);if (【3】)printf("小明比小红大\n");else if (【4】)printf("小红比小明大\n");elseprintf(【5】);}3.程序填空题#include <stdio.h>main(){int num, n1, n2, n3;printf("请输入一个三位正整数:");scanf("%d", 【1】);n1 = 【2】;n2 = 【3】;n3 = 【4】;if (【5】 == num)printf("Y\n");elseprintf("N\n");}4.程序填空题程序功能:输入一个 1800~2800 之间的整数作为年份,判断该年份是否为闰年。

年份符合下列条件之一者为闰年:①能被 4 整除且不能被 100 整除;②能被 400 整除。

程序部分代码如下:#include <stdio.h>main(){int year,flag;printf("请输入年份:");【1】;【2】printf("年份超出范围。

C语言实验答案(2-6)

C语言实验答案(2-6)
实验二 1.验证性实验 (1) 程序运行结果
x=10,y=10,z=10 x=8,y=10,z=16 c1=M,c2=4d,c3=115,c4=77 c1=M,c2=M,c3=M,c4=M c1=77,c2=77,c3=77,c4=77 c=m,c=109
(2)程序运行结果
输入:
1,2 3,4 5,6 7,6 a,b
运行一: 1 0,1,0,0
运行二: 2 0,0,1,1
运行三: 3 0,0,0,1
运行四: 4 1,0,0,0
运行五: 5 1,0,0,0
输入不同数据以后,a,b,c,d 的结果不一样,分析其原因主要在于:输入值不同, switch 语句进入的 case 分支不同;当分支语句中未出现 break 时 switch 语句会继 续继续进入下一 case 分支分支执行,直到遇到 break 或最后。
实验三
一、验证性试验 15M5.55
b=25,y=2.6,c2=N a= 15,b=25 x=5.550000,y=2.600000 c1=M,c2=N 在 scanf("%d%c%f",&a,&c1,&x);的输入中,由于输入字符型数据时空格会作为 有效输入字符处理,所以空格不能作为数据输入的分隔符,在输入 a 的值后,接 下来输入的应是一个字符型,若之间用空格则此空格将被视为一个字符,但若是 先输字符再输一个数,其间就可以用空格。 二、程序填空: ①a/b ②a%b ③quot,resi 三、程序改错: scanf("%f %f ",&x,&y) 改为 scanf("%d%d",&x,&y); printf("%d+%d=%d",x+y) 改为 printf("%d+%d=%d",x,y,x+y) ; (2) getchar(x) 改为 x=getchar() y=x-32 改为 y=x+32 四、设计性试:

c语言程序阅读填空运行结果改错题

c语言程序阅读填空运行结果改错题

三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。

main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

请填空。

main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。

C语言实验报告 实验三 参考答案

C语言实验报告 实验三  参考答案

实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。

例如,输入一个数:27638496,新的数:为739。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。

第二处:判断是否是奇数,所以应填:0。

第三处:最后通形参n 来返回新数x ,所以应填:x 。

2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。

例如,7的5次方是16807, 其低3位数的和值是15。

【解题思路】第一处:变量d 的初始值应为1。

第二处:整除的符号是 /。

3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。

【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。

【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。

C语言习题(7)

C语言习题(7)

C语言习题(第7章函数)一.选择题1.以下说法正确的是________。

A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分2.以下正确的说法是___________。

A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

3.以下正确的函数定义是___________。

A)double fun(int x, int y); B)int fun(int x,y){ z=x+y ; return z ; } { int z ; return 3;}C)double fun (x,y) D)double fun (int x, int y){ int x, y ; double z ; { double z ; z=x+y;z=x+y ; return z ; } return z ; }4.C语言中,简单变量做实参和形参时,以下正确的说法是___________。

A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元5.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是___________。

A)地址传递B)单向值传递D)由用户指定传递方式6.C语言规定,函数返回值的类型是由___________决定的。

A)return语句中的表达式类型B)调用该函数时的主调函数类型C)调用该函数时由系统临时D)在定义函数时所指定的函数类型7.以下正确的描述是___________。

C语言上机内容(2)

C语言上机内容(2)

一.选择题
二.程序题
1. 从键盘输入x,计算,并把结果输出到屏幕上;
如输入3.2,输出结果为0.324813
2.从键盘输入一个实数,输出这个实数的个位数和第一位小数的乘积,如输入42.834,则输出16
3. 从键盘输入x的值,计算fun(x),并将结果输出到屏幕上
4. 程序改错题:修改如下程序,使之完成功能:输出200以内除以3余数为2的所有自然数之和的平方根。

(只能对红色画线的部分修改,其他地方不能改动);
#include <stdio.h>
#include <math.h>
void main()
{
double s=0.0,y;
int i;
for(i=1;i<200;i++)
s+=i;
printf("y=%f\n",y);
}
5.程序填空,在横线上填入适当的语句,输出如下星型图案,其中行数n从键盘输入如下图,当n=5时
#include<stdio.h>
main()
{

scanf("%d",&n);
for(i=1;i<=n;i++)
{

printf(" ");
for (k=1;k<=7;k++)
printf("*");
printf("\n");
}
}
6.编程输出100-200之间的所有能被3和5同时整除的整数,并统计个数。

C语言实验报告第3章答案

C语言实验报告第3章答案

3.2基础实验一、程序分析1.以下程序若输入’a’,则输入格式为:__c1=a____;运行结果为:___a,A↙_____。

#include<stdio.h>intmain( ){char c1,c2;scanf(“c1=%c”,&c1);c2=c1-32;printf(“%c,%c\n”,c1,c2);return 0;}2.以下程序如果使得a的值为2、b的值为3,则输入格式为:_a=2,b=3__;运行结果为:_2,3↙_。

#include<stdio.h>intmain( ){ int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“%d,%d\n”,a,b);return 0;}3.以下程序若输入12.3、7.6、1.1,则输入格式为:_12.3 7.6 1.1__;运行结果为:_aver=7.00___。

#include<stdio.h>intmain( ){ floata,b,c,d;scanf(“%f%f%f”,&a,&b,&c);d=(a+b+c)/3;printf(“aver=%.2f”,d);return 0;}二、程序填空1.输入一个四位整数,求各位数字之和(如1234,则结果为1+2+3+4=10)。

若输入3562,则运行结果为:___3+5+6+2=16↙____________。

#include <stdio.h>intmain( ){ int n,a,b,c,d,m;scanf(“%d”,&n);a=n%10;b=(n/10)%10;c=(n/100)%10;d=__n/1000________;m=__a+b+c+d________;printf(“%d+%d+%d+%d=%d\n ”, d,c,b,a,m);return 0;}2.给定一个华氏法表示的温度值,将其转换为摄氏法表示的温度,转换公式为则运行结果为:__f=64.00,c=17.78↙__。

第八届蓝桥杯c组试题及答案

第八届蓝桥杯c组试题及答案

第八届蓝桥杯c组试题及答案第八届蓝桥杯C组试题及答案1. 单项选择题1.1 以下哪个选项是C语言中声明一个整型数组的正确方式?A. int array[10];B. int [10] array;C. int array[];D. int array=10;1.2 正确答案是 A。

2. 程序填空题2.1 请在以下程序中填入缺失的代码,以实现计算并输出1到100之间所有奇数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 1) {sum += i;}}printf("Sum of odd numbers: %d\n", sum);return 0;}```2.2 缺失的代码是 `if (i % 2 == 1) {`。

3. 程序改错题3.1 以下程序旨在计算并输出1到100之间所有偶数的和,但存在错误,请找出并修正错误。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers: %d\n", sum);return 0;}```3.2 错误在于程序的目的是计算奇数的和,但代码计算的是偶数的和。

要修正这个问题,需要将 `if (i % 2 == 0)` 更改为 `if (i % 2 != 0)`。

4. 编程题4.1 编写一个程序,实现以下功能:从用户输入一个整数n,然后输出n的阶乘。

```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int n;printf("Enter a number: ");scanf("%d", &n);printf("Factorial of %d is %lld\n", n,factorial(n));return 0;}```4.2 以上程序正确实现了题目要求的功能。

java题

java题

〖第1题〗『程序填空』(5分)(题号:387)/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:从键盘上输入10个int型数,去掉重复的数据之后输出,并输出剩余数据的个数-------------------------------------------------------*/import java.io.*;public class Prog1{public static void main(String args[]) throws IOException{final int N=10;/*******************SPACE*******************/【?】=new int[N];int i,j,n;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));for(i=0;i<N;i++){System.out.print("请输入第"+(i+1)+"个整数:");/*******************SPACE*******************/【?】=Integer.parseInt(buf.readLine());}n=N;for(i=0;i<n;i++){for(j=i+1;j<n;j++)/*******************SPACE*******************/if(【?】){ a[j]=a[--n];/*******************SPACE*******************/【?】;}}System.out.print("删除重复数值后的数据为:");for(i=0;i<n;i++)System.out.print(a[i]+" ");System.out.println();System.out.print("删除重复数值后的数据的个数为:"+n);}}答案:1). int a[]2). a[i]3). a[i]==a[j] 或a[j]==a[i]4). j-- 或--j 或j-=1 或j=j-1〖第2题〗『程序填空』(5分)(题号:372)/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:打印输出杨辉三角的前10行。

程序改错题

程序改错题
y-=1/(I*I);
return(y);
}
void main()
{int n=5;
system("CLS");
printf("\nThe result is %1f\n", fun(n));
}
(1)错误:for(I=2; I<m; I++) 正确:for(I=2; I<=m; I++)
(2)错误:a++; 正确:(*a)++;
(3)错误:b++; 正确:(*b)++;
【解析】(1)根据题中程序可以看出,函数fun传递的是地址,那么在函数中就应该出现指针,所以改为void fun (char *s ,int *a, int *b)。
(2)和(3)很明显,这里是要累加数值,因为a、b是指针变量,所以是错误的。
【解析】(1)这里是一个简单的格式错误,if条件应该加括号。
(2)根据阶乘的概念,从n开始,n!=n*(n-1)!,直到1,所以应该为result *=n--;
8、下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。
2、下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。
t=1-1/(2×2)-1/(3×3)-…-1/(m×m)
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdlib.h>

C++程序题

C++程序题
for (m = d.month+1; m < month; m++)
/***********SPACE***********/
diffs+=monthday[m];
// 在此增加一条语句, 依次计算两个日期间相差的整月天数
return diffs;
否则输出“no”.(回文是字符串正读反读一样,如level)
-------------------------------------------------------*/
#include <iostream.h>
int lenth(char a[])
{
int i;
l=lenth(a);
/***********SPACE***********/
for(i=0,j=l-1;i<j;i++,j--)
if(a[i]!=a[j])
break;
/***********SPACE***********/
if(i>=j)
cout<<"yes";
else
cout<<"no";
cout<<s;}
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:类B是类A的友元类,程序的运行结果为:
20
10
--------------------------------------------------------

高考C语言题

高考C语言题

高考C语言题集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)试卷编号:8258所属语言:计算机基础试卷方案:111试卷总分:400分共有题型:3种一、程序填空共5题(共计100分)第1题(20.0分)题号:650 难度:中第1章/*-------------------------------------------------------【程序填空】---------------------------------------------------------函数int change(char s[])将s中的数字字符串转换成整数,并返回该数。

例如s[]中为"123",转换后为123。

函数int multi(char s[],char t[])将s字符串转换的整数乘以t字符串转换的整数,并返回乘积。

---------------------------------------------------------注意:请勿改动程序中的其他内容。

-------------------------------------------------------*/#include<stdio.h>int change(char s[]){int i,sum;sum=0;for(i=0;s[i];i++)/**************************SPACE*************************/ sum=sum*10+【】-'0';return sum;}int multi(char s[],char t[]){int mul;/**************************SPACE*************************/ mul=【】;return mul;}int main(){char s1[]="123",s2[]="56";int mst;mst=multi(s1,s2);printf("%d\n",mst);return 0;}答案:=======(答案1)=======s[i]=========或=========*(s+i)=======(答案2)=======change(s)*change(t)=========或=========change(t)*change(s)第2题(20.0分)题号:651 难度:中第1章/*-------------------------------------------------------【程序填空】---------------------------------------------------------函数void check(long n, int c[])检测长整型正整数n是几位数,同时找出最小的数字。

一套C++练习题(含答案)

一套C++练习题(含答案)
例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有15个。当x值为27时,各位数字之和为27的整数是:999,只有1个。
填空:(1)999 (2)t/10 (3)x
最后在黑色对话框中输入20后按回车键
十、
1、程序填空题
给定程序中,函数fun的功能是,将形参s所指字符串中的字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如:s所指字符串为:asd123fgh543df,处理后新字符串为asdfghdf123543。
填空:(1)s[i] (2)k (3)0
1、程序填空题
给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写在文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
填空:(1)FILE* (2)fclose(fp) (3)fp
改错:(1)t=(STU *)calloc(sizeof(STU),m); (2)t[k]=b[j];
编程:int i;
double s=0;
for(i=0;i<8;i++) s+=sqrt((x[i]+x[i+1])/2);
return s;
十六、
1、程序填空题
给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。

C语言实验答案-重庆大学出版社(杨永斌 丁明勇)

C语言实验答案-重庆大学出版社(杨永斌 丁明勇)

一2、①a/b②a%b3.(1)#include "stdio.h"#include "conio.h"void main(){ float r,s;r=10;s=3.14*r*r;printf("s=%.4f\n\n",s);getch();}(2)#include "stdio.h"#include "conio.h"#include <stdlib.h>void main(){ int s,num1,num2,num=100;/*初始化随机数发生器,其作用是每次运行程序时使rand()产生的随机数不一样*/int rand();num1=rand()%num +1; /*产生num范围内的随机加法数1*/num2=rand()%num +1; /*产生num范围内的随机加法数2*/printf("%d + %d = ",num1,num2);printf("请输入你的答案: ");scanf("%d",&s);if(num1+num2==s) /*判断是否答对*/printf("Yes,你答对了。

%c\n",7); /*7为响铃*/else /*答错的处理*/printf("No,你答错了。

\n");getch();}二1.验证性实验(1) 程序运行结果x=10,y=10,z=10x=8,y=10,z=16c1=M,c2=4d,c3=115,c4=77c1=M,c2=M,c3=M,c4=Mc1=77,c2=77,c3=77,c4=77c=m,c=109(2)程序运行结果输入:1,23,45,67,6a,b输出:a= 1,b= 2c= 3.00,d= 4.00e= 5,f= 6 u=7,v=6c1=,c2=2输入:1,22,33,44,5a,b输出:a= 1,b= 2c= 2.00,d= 3.00e= 3,f= 4 u=4,v=5c1=a,c2=b(3)程序运行结果1234567812345678123456781234567856 75 6 7c:\a.txt2.填空性实验①%f ②&h ③pi*r*r ④s*h ⑤v3.程序改错(1)#include "stdio.h"#include "conio.h"void main(){ float a,b,x;a=3.1;b=4.5;x=a+b;printf("%.0f",x);getch();}(2)#include "stdio.h"#include "conio.h"void main(){int x,a;x=12345;a=x%10;printf("%d",a);getch();}4.设计性实验(1)#include "stdio.h"#include "conio.h"void main(){ float x,y,z;printf("Please input 2 reals");scanf("%f%f",&x,&y);z=x;x=y;y=z;printf("After swapped,x=%f,y=%f",x,y);getch();}(2)#include "stdio.h"#include "conio.h"void main(){ char a,b;a=127;b=a+1;printf("a=%c,a+1=%c\n",a,b);printf("a=%d,a+1=%d\n",a,b);a=-128;b=a-1;printf("a=%c,a-1=%c\n",a,b);printf("a=%d,a+1=%d\n",a,b);getch();}三一、验证性试验:由于程序主函数结尾缺少"getch();"导致最后的执行结果一闪而过加上后执行结果为15M5.55b=25,y=2.6,c2=Na= 15,b=25x=5.550000,y=2.600000c1=M,c2=N在scanf("%d%c%f",&a,&c1,&x);的输入中,由于输入字符型数据时空格会作为有效输入字符处理,所以空格不能作为数据输入的分隔符,在输入a的值后,接下来输入的应是一个字符型,若之间用空格则此空格将被视为一个字符,但若是先输字符再输一个数,其间就可以用空格。

C语言程序改错及填空题

C语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment……………*/intn;structstudcreate()////////structstud*create(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/*……………comment……………*/head=NULL;while(p1!=0)//////////while(p1->num!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p1=(structstud*)malloc(size(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c的功能是互换给定数组中的最大数和最小数。

如将下面8个数:5,3,1,4,2,8,9,6变成:5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。

程序有二处错误,请改正。

注意:不得增行和删行,也不得修改程序的结构。

main(){inti;staticinta[8]={5,3,1,4,2,8,9,6};voidjhmaxmin();printf("Originalarray:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");}//注意:voidjhmaxmin(p,n)intp,n;这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn) voidjhmaxmin(p,n)intp,n;////////int*p,n;{intt,*max,*min,*end,*q;end=p+n;max=min=p;for(q=p+1;q<end;q++){if(*q>*max)max=q;if(*q<max)min=q;////////*q<*min}t=*max;*max=*min;*min=t;}gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。

c语言程序填空含答案

c语言程序填空含答案

【程序填空】功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

len=length(str...);I.nt length ........(p)N.++..;P.++..;【程序改错】功能:将一个字符串中的大写字母转换成小写字母。

bool (char)......fun(char *c)fun= c;(return *c)..........puts(*p);(putchar(*p)).............【程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。

------------------------------------------------*/ #include<stdio.h>void wwjt();void swap(int *a,int *b){/**********Program**********//********** End **********/ }main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(x<y)swap(&x,&y);if(x<z)swap(&x,&z);if(y<z)swap(&y,&z);printf("%3d%3d%3d",x,y,z);wwjt();}void wwjt(){FILE *IN,*OUT;int m,n;int i[2];IN=fopen("in.dat","r");if(IN==NULL){printf("Read FILE Error"); }OUT=fopen("out.dat","w"); if(OUT==NULL){printf("Write FILE Error"); }for(n=0;n<3;n++){for(m=0;m<2;m++){fscanf(IN,"%d",&i[m]);}swap(&i[0],&i[1]);fprintf(OUT,"%d\n",i[0]);fprintf(OUT,"%d\n",i[1]);}fclose(IN);fclose(OUT);}/*-------------------------------------------------------【程序填空】功能:输入3个数a,b,c,按从小到大的顺序输出。

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

1程序改错上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面。

下面的程序企图计算由键盘输入的任意两个整数的平均值:#include<stdio.h>void main( ){ int x,y,a;————>float x,y,a;scanf(“%x,%y”,&x,&y);————> scanf(“%f,%f”,&x,&y);a=(x+y)/2;printf(“The average is:%d\n”,a);————>“The average is:%f\n”}运行结果:输入3,5输出4.000000结果分析:若a定义为整型,可能出现3,4的平均值为3,自动取整2上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面。

(1)输入三角形三边长,求三角形面积。

#include “math.h”void main(){float a,b,c,area;————> float a,b,c,area,s; scanf(“%f ,%f,%f”,a,b,c); ————> scanf(“%f ,%f,%f”,&a,&b,& c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c) ; ————>area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%d”,area)————>printf(“area=%f”,area)}运行结果:输入3,4,5输出area=6.000000结果分析:sqrt是库函数,表示开方。

上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面。

(1)输入三角形三边长,求三角形面积。

#include “math.h”void main(){float a,b,c,area;————> float a,b,c,area,s;scanf(“%f ,%f,%f”,a,b,c);————>scanf(“%f ,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);————>area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%d”,area)————>printf(“area=%f”,area)}运行结果:输入3,4,5输出area=6.000000结果分析:sqrt是库函数,表示开方。

(2)下面的C程序,目的是想计算由键盘输入的任意两个整数的积。

#include (stdio.h);————>#include“stdio.h”void main();————> void main()scanf(“%x,%y”,&x,%y)————>scanf(“%d,%d”,&x,&y) ;int c,x,y;c=x*y————> c=x*y;printf(“c=%f”,c)————>printf(“c=%d”,c) ;}运行结果:输入2,3输出6结果分析:注意有些地方需要加分号,有些地方不需要上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面。

下述程序按公式:求①main()②{ float s=0;③int k;④for(k=1;k<=10;k++;)————>for(k=1;k<=10;k++)⑤s+=1/k;————> s+=1.0/k;⑥printf(“sum=%f\n”,s);⑦}运行结果:sum=2.928968结果分析:for的第三个表达式后无“;”1为整数1/k为整数上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面。

(1)已知二维数组形式如下:求主对角线上元素之和。

①main()②{int a[i][j];————> int a[4][4];③int i,j,sum;————> int i,j,sum=0;④for(i=0;i<4;i++)⑤for(j=0;j<4;j++)⑥scanf(“%d”,a[i][j]);————>scanf(“%d”,&a[i][j]);⑦for(i=0;i<4;i++)⑧sum=sum+a[i][j];————>sum=sum+a[i][i];⑨printf(“SUM=%d”,sum);⑩}运行结果:sum=45结果分析:一条对角线(2)从键盘输入一个字符串“how are you”,并将字符串原样输出。

①main()②{char f[ ];————> char f[20 ];③scanf(“%s”,f)————>gets(f);④printf(“%s”,f);⑤}运行结果:输入how are you输出how are you结果分析:gets字符串输入函数(3)比较两个字符串的大小,如果相等输出equal,如果不相等输出unequal.①main()②{char s1[10],s2[10];③gets(s1);get2(s2);④if(s1=s2)printf(“equal”); ————> if( (s1,s2)==0)⑤else printf(“unequal”);⑥}运行结果:输入the回车the 输出equal结果分析:strcmp字符串比较函数上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面,并指出出错原因。

(1)用函数求两实数之积①float up(float,float);②main()③{float a,b;④scanf(“%f,%f”,&a,&b);⑤printf(“%f”,up(float a,float b)); }————> printf(“%f”,up( a,b)); }⑥float up(float x,float y)⑦{return(x*y);}运行结果:输入1,2输出2.000000结果分析:函数调用时实际参数前不加类型(2)函数求两整数的最大值①max(int a,int b);————> max(int a,int b)②{return(a>b?a:b);}③main()④{int x,y;⑤scanf(“%d%d”,&x,&y); ⑥printf(“max=%d\n”,max( x,y));}运行结果:输入12,输出max=2结果分析:定义函数时函数首部无分号(3)用函数求两实数之和①#include<stdio.h>②main()③{int add(float,float);————>{floatadd(float,float);④float a=10.0,b=20.0,c;⑤c=add(a,b);⑥printf(“c=%f\n”,c);}⑦float add(float i,floatj)⑧{float k;⑨k=i+j;⑩return(k);运行结果:c=30.000000结果分析:函数值类型要对应上机调试下面的程序,记录系统给出的出错信息,改正后写在对应错误代码行后面,并指出出错原因。

(1)main( ){int x=10,y=5,*px,*py;px=py;————>此行去掉px=&x;py=&y;printf(“*px=%d,*py=%d”,*px,*py);}运行结果:*px=10,*py=5结果分析:py没有值,不能赋值给px(2)以下程序功能是使指针变量pt1指向a和b中的大者,pt2指向小者。

main( ){int a,b;int pt1,pt2;————> int *pt1,*pt2;void swap(int *p1,int*p2);scanf(“%d,%d”,&a,&b);pt1=&a;pt2=&b;if(a<b) swap(pt1,pt2);printf(“%d,%d\n”,*pt1,*pt2);}void swap(int *p1,int *p2){int *p;————>int p;p=p1;p1=p2;p2=p;————>p=*p1;*p1=*p2;*p2=p;}运行结果:输入2,3输出3,2结果分析:pt1,pt2为指针变量p为整型变量(1)候选人得票统计程序,设有3个候选人,有10个人投票,最终只能有1人当选领导。

typedef struct{string name;int count;} person;main(){personleader[3]=[“li”,0,”wang”,0,”liu”,0];————>中括号改为大括号int i,j;string str;person *p;for(i=0;i<0;i++)————>for(i=0;i<10;i++){scanf(“%s”,str);————> for(j=0;j<3;j++)if(leader[j].name==str)leader[j].count++;}for(p=leader;p<leader+3;p++)printf(“%s%d”,p->name,p->count);}(2)有一个结构体变量st,内含学生学号,姓名和3门课的成绩,要求在main函数中为各成员赋值,在另一函数print将他们输出typedef struct{int num;string name;f loat score[i];————> f loat score[3]}stu;main(){stust(1001,“liu”,78,85,97);*p;p=*st;————>p=st;void printf(stu);print(st);}void printf(stu st)//*p;{printf(“%d%s%d%d%d”,st.num,,st.score[0],st.score[1],st.score[2];}程序填空任意输入一个有五位数字的正整数x,分别输出每一数位上的数字(由高到低分别用b5,b4,b3,b2,b1表示)。

#include<stdio.h>void main( ){int b1,b2,b3,b4,b5;long x;scanf( “ %d ”,&x);b5=(x/10000)%10;b4=(x/1000)%10;b3=(x/100)%10;b2=(x/10)%10;b1= x%10;printf(“the number is %d \n”,x);printf(“its bit is:%d,%d,%d,%d,%d\n”,b5,b4,b3,b2,b1);}运行结果:输入23456输出the number is23456its bit is:2,3,4,5,6结果分析:b1~b5分别表示个,十,百,千,万2.程序填空输入任一字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。

相关文档
最新文档