当前位置:文档之家› 12套C语言上机试题及参考答案

12套C语言上机试题及参考答案

12套C语言上机试题及参考答案
12套C语言上机试题及参考答案

第一套C语言上机试卷

一、改错题

【题目】

本程序计算并输出二维数组a的每一列最小元素的值及其行号、列号,整个数组a中最小元素的值及其行号、列号。含有错误的源程序为:

#include"stdio.h"

#define n 4

#define m 3

int a[n][m],s[m];

p(int j)

{int k,i,x;

S[j]=x=a[0][j];i=0;

for(k=1;k

if(a[k][j]

{i=k;s[j]=x=a[k][j];}

return i;

}

main()

{int index[m],i,j,k;

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(j=0;j

{index[j]=p[j];

printf("a[%d][%d]=%d\n",index[j],j,s[j]);

}

i=s[0];k=0;

for(j=1;j

if(s[j]

{i=s[j];k=j;}

printf("min=a[%d][%d]=%d",index[k],k,i);

}

注:调试程序时,可以随意输入测试数据,最后运行本程序时,必须从键盘输入下列数据:6 4 16 9 7 13 8 18 15 5 12 19

【要求】:

1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理语句,但不能增加其他语句,也不能删去整条语句。

3.将改正后的源程序(文件名myf1.c)放在考试盘的根目录下,供阅卷用。

二、编程题

【题目】建立数组a[3][8],其中前两行元素产生方法是:

用初值x1=26及公式x i+1=(25*x i+357)%1024,产生一个数列:x1,x2,…,x16。其中x1~x8作为a的第一行元素;x9~x16作为a的第二行元素;第三行的元素值取前两行同列元素的最

大公约数。最后把数组a的元素写到文件myf2.out中,每写完a的一行元素要换行。【要求】

1.将源程序取名为myf2.c 输出结果文件取名为myf2.out。

2.数据文件的打开、使用、关闭均按TURBO C文件操作实现。

3.源程序文件和运行结果文件均需放在考试盘的根目录下,供阅卷用。

4.不要将myf2.obj和myf2.exe保存到考试盘上。

第二套C语言上机试卷

一、改错题

【题目】

下面的程序判断一个正整数是否为降序数,再打印组成该整数的每个字符。

设正整数m=d0d1d2d3…d k-1,若满足d i >=d i+1,i=0,1,…,k-2,则m就是一个降序数,如21、433是两个降序数。

含有错误的源程序如下:

#include

void main()

{int num,k,di,n,isdec;

long m;

char digit[10];

scanf("num=%d",&num);

for(;num>0;num--)

{n=0;isdec=1;k=0;

scanf("%ld",&m);

while(m!=0)

{di=m%10;

digit[n++]=m%10+’0’; *数字字符与相应数字的转换*

m=m/10;

if(k<=di)k=di;

else isdec=0;

}

for(n--;n>=0;n--)

{putchar(digit[n]); putchar(' ');}*使用putchar要加#include*

if(isdec)printf(" is decrea order number\n");

else printf("is not decrea order number\n");

}

}

【要求】

1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题

【题目】

程序功能:将一字符串做压缩处理。

编程要求:

1.编写一个函数int compress (char s[ ]),将s中连续出现的多个相同字符压缩成一个字符,统计被删除的字符个数,并返回被删除的字符个数。

2.编写主函数main。从键盘上读入一行字符数据放入一个字符型数组中,调用compress 函数对该字符数组中的字符做压缩处理,将压缩后的字符串写入结果文件myf2.out中。

3.用以下数据测试程序:

@@@@@@ I wwillll successful &&&&&& and you too !!!!!! ##########【要求】

1.将源程序文件取名为myf2.c,输出结果文件取名为myf2.out。

2.数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。3.源程序文件和运行结果文件均需保存在考试盘的根目录下,供阅卷用。

4.不要复制扩展名为OBJ和EXE的文件到考试盘上。

第三套C语言上机试卷

一、改错题

【题目】

下面的程序能够从键盘上接受一个含有空格的字符串(scsnf遇到空格就停止输入,应用gets),然后按照字典序对所有字符排序,再删除重复出现的字符。

含有错误的源程序如下:

#include

#include "stdio.h"

void main()

{char str[100],*p,*q,*r,c;

printf("Input a string:");

gets(str);

for(p=str;*p;p++)

{for(q=r=p;*q;q++)

if(*r>*q)r=q;

if(r!=p){c=*r;*r=*p;*p=c;}

}

for(p=str;*p;p++)

{for(q=p;*p==*q;q++);

strcpy(p+1,q);*用strcmp要加#include*

}

printf("result:%s\n",str);

}

【要求】

1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题

【题目】

程序功能:将一个4×4二维数组中全部元素逆时针旋转90°。

编程要求如下:

1.编写函数int rotate (int a[4][4], int b[4][4]),将数组a中元素逆时针旋转90°后的元素保存在数组b中,计算b数组主对角线上全部元素之和作为函数的返回值。

2.编写主函数main,从键盘上读入16个数据放入一个二维数组中,调用rotate函数,将旋转后的二维数组全部元素按行写入到结果文件myf2.out中,最后将旋转后数组中主对角线上全部元素之和写入到结果文件myf2.out中。

3.使用以下测试数据:

旋转前:旋转后:

1 5 9 13 13 14 15 16

2 6 10 14 9 10 11 12

3 7 11 15 5 6 7 8

4 8 12 16 1 2 3 4

【要求】

1.将源程序文件取名为myf2.c,输出结果文件取名为myf2.out。

2.数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。3.源程序文件和运行结果文件均需保存在考试盘的根目录下,供阅卷用。

4.不要复制扩展名为OBJ和EXE的文件到考试盘上。

第四套C语言上机试卷

一、改错题

【题目】

使用Windows搜索工具在磁盘中查找文件时,在被查找的文件名文本框内允许出现含有通配符“*”和“?”的字符串,以达到搜索多个文件的目的,称这样一个字符串为模板。搜索的过程就是在已知的若干文件名字符串中查找与模板匹配的文件名。以下程序实现模板与字符串的匹配判断功能。给出一个模板pat及一个字符串str,模板中可能含有通配符“*”和“?”,其中“*”表示在该位置上有0个或多个任意字符,“?”表示在该位置上有一个任意字符。函数match对它们作匹配判断后,返回1表示匹配,返回0表示不匹配。例如,模板为“e*p?e”,若字符串为“example”,则两者是匹配的;若字符串为“europe”,则两者是不匹配的。

程序正确时,当输入的模板为“e*p?e”,若输入字符串为“example”时,则输出“e*p?e match example”;若输入字符串为“europe”时,则输出“e*p?e unmatch europe”。

含有错误的源程序如下:

void match(char *pat,char str)

{char *p=pat,*q=str;

int i=0;

while((*p!=NULL)&&(*q!=NULL))

if(*p= =*q||*p= ='?')p++,q++;

else if(*p= ='*')

{p++;

while(*q!=*p&&*q!=NULL)q++;

}

else i=0;break;

if(*p!=NULL||*q!=NULL)i=0;

return i;

}

main()

{char a[10],b[10];

int yesno;

gets(a);gets(b);

yesno=match(a,b);

printf("%s %s %s\n",a,yesno?"match":"unmatch",b);

}

【要求】

1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题

【题目】

有一些十进制整数对ab和cd具有如下特性:ab×cd=ba×dc,其中,a、b是不同的数字且c、d也是不同的数字。例如:

12×42=21×24,12×63=21×36,12×84=21×48

请按如下要求编程:

1.编写函数int inv(int x),完成将两位数x的个位与十位对换,返回对换后新的两位数。

2.主函数中找出m、n取值在30~50之间,且满足等式:m*n=inv(m)*inv(n)的所有m、n值,并按上述等式的格式写入到文件myf2.out中(每个等式一行,×可用*表示)。【要求】

1.将源程序文件取名为myf2.c,输出结果文件取名为myf2.out。

2.数据文件的打开、使用和关闭等操作均用C语言标准库中缓冲文件系统的文件操作函数实现。

3.源程序文件和运行结果文件均需保存在考试盘的根目录下,供阅卷用。

4.不要将myf2.obj和myf2.exe保存到考试盘上。

第五套C语言上机试卷

一、改错题

【题目】

某数列的前两项是3和2,其后续项根据前面最后两项的乘积,按下列规则生成:(1)若乘积为一位数,则该乘积即为数列的后续项;

(2)若乘积为两位数,则该乘积的十位数字和个位数字依次作为数列的两个后续项。例如:该数列的前10项为:3、2、6、1、2、2、4、8、3、2。

函数sum按要求生成数列的前n(n<50)项,存入首指针为pa的数组中,计算并返回前n项的和。

#include

#define N 50

void sum(int n,int *pa)

{ int count, total,temp;

*pa=3;*++pa=2;

total=5; count=2;

while(count++

{ temp=*(pa-1)**pa;

if(temp<10)

{ total+=temp; *(++pa)=temp;

}

else

{*++pa=temp/10;

total+=*pa;

if(count

}

}

return total;

}

main()

{ int tol,n,i,num[n];

do

{printf("Input n=?(2

scanf("%d",&n);

}while(n<=2||n>=50);

tol=sum(N,num);

for(i=0;i

printf((i+1)%5?"%5d":"%5d\n",num[i]);

printf("\n");

printf("%d",tol);

}

【要求】

1.将上述源程序录入到文件MYF1.C中,根据题目要求以及程序中语句间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编

译预处理语句,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序MYF1.C必须放在考试盘的根目录下,供阅卷用。

二、编程题

【题目】

一个有符号整型数以字符串形式存放在字符数组a中,字符串中只会出现数字字符、“-”、“+”和空格。约定“-”和“+”只能出现在a[0]的位置。若a[0]位置的字符是“-”,则表示该整型数为负数,否则为正数。除a[0]外,其他位置还可能出现空格。试按下列要求编写程序:

1.编写函数int chang(char a[], int b[],int *n)按下列规则转换字符数组a中的字符串:(1)整型变量sign存放数符,当整型数为正数时sign为0,为负数时sign为1,函数返回sign值;

(2)整型数组b依次存放字符串a中出现的所有数字字符转换为对应的整型数后的值(不包括数符);

(3)n指向的变量保存放入b数组的整型数的个数;

(4)字符串a中的空格忽略不计

如:字符串“20 3 ”转换后的结果是:sign=0,b=(2,0,3)

字符串“-3 3740”转换后的结果是:sign=1,b=(3,3,7,4,0) 2.函数中输入二个字符串:“-2 35 1”,“+38 2 46”,分别调用函数chang做字符串转换,并将转换结果以例子给出的形式写到文件myt2.out中。

【要求】

1.将源程序文件取名为myf2.c 输出结果文件取名myf2.out。

2.数据文件的打开、使用、关闭等操作均用c标准库中的缓冲文件操作函数实现。

3.源程序文件和运行结果文件均须放在考试盘的根目录下,供阅卷用。

4.不要将myf2.obj和myf2.exe保存到考试盘上。

第六套C语言上机试题

一、改错题

【程序功能】

使用插入法将一个结构体数组中的数据按成员score的值从大到小排序。含有错误的源程序:#include

#include

#define N 5

struct student

{ char name[10];

int score;

} ;*定义结构体变量最后要加;*

void sort(struct student stud[],int n)

{ int i,j;

struct student p;

for(i=1;i<=n-1;i++)

{ p=stud[i];

for(j=i-1;j>=0 && p.score>stud[j].score;j--)

stud[j+1]=stud[j];

stud[j+1]=p;

}

}

void main()

{ struct student stud[N]={"aaa",60,"bbb",90,"ccc",85,"ddd",65,"yyy",77};

int i;

sort(stud,N);

printf("sorted data:\n");

for(i=0;i

}

要求:

1.把上述程序录入到文件myfl.c中,根据题目要求及程序中语句的逻辑关系对程序

中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或预

编译处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序(文件名myfl.c)保存在考试软盘的根目录中供阅卷使用,否则不

予评分。

二、编程题

【编程要求】

1.编写函数int Replace_string(char line[],char str1[],char str2[]),其功能是:在line指向的

字符串中查找str1指向的字符子串,若找到则用str2指向的字符串替换第一次出现在line 中的str1字符子串,替换成功返回1,否则返回0。

2.编写main函数,line字符串和str1字符串均用测试数据,从键盘输入考生本人准考证

号(str2字符串),调用Replace_string函数,用str2字符串替换line中str1字符子串,并将替换后的line字符串保存到结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。

测试数据

测试数据:line字符串为“My EXAM_number is 0112404321.”,str1字符串为“0112404321”运行结果:“My EXAM_number is 0112400123.”(0112400123为某考生的准考证号),

My exam number is:0112400123(考生本人准考证号)

【要求】

1、源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。

2、数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。

3、源程序文件和运行结果文件均需保存在考试盘根目录中供阅卷使用。

4、不要复制扩展名为.obj和.exe的文件到考试盘上。

第七套C语言上机试卷

一、改错题

【题目】

函数void sort(struct T items[],int low,int high)的功能是:对items结构数组中从下标low 开始到high为止的所有数组元素按成员name以字典序排序,并输出排序后的结果。

含有错误的源程序如下:

#include

#include

struct T

{char name [20],num[20];

};

void sort(struct T items[],int low,int high)

{struct T temp;

int k,j;

for(k=low;k

for(j=low;j

if(strcmp(items[j].name,items[j+1].name)>0)

{temp=items[j];items[j]=items[j+1];items[j+1]=temp;}

}

void main(void)

{struct T stu[5]={"Wang","6723","Cai","2106","Zhang",

"5129","Chang","4512","An","6868"};

int k;

sort(stu,0,4);

printf("The Sorted Array:\n");

for(k=0;k<5;k++)

printf("name:%s,num:%s\n",stu[k].name,stu[k].num);

}

【要求】

1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题

【题目】

1.编写函数void count(char a[ ],char w[ ][10],int n,int b[ ])。其功能是:统计w指向的数组中n个单词在a指向的字符串中各自出现的次数(将非字母字符看做单词分隔符),并将统计结果依次保存在b指向的数组中。

2.编写main函数。采用数组初始化方式将以下测试数据(原数列)保存在数组中,调用count函数作统计,将统计结果(所有单词以及各自出现的次数)保存到结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out 中。

例如,测试数据为

a中字符串:"this is a book,that is an apple"

w中的单词:"this","that","is","a","an","book"

则输出结果为

this:1,that:1,is:2,a:1,an:1,book:1

my exam number is:0112400123(考生本人的准考证号)

【要求】

1.将源程序文件取名为myf2.c,输出结果文件取名为myf2.out。

2.数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。3.源程序文件和运行结果文件均需保存在考试盘的根目录下,供阅卷用。

4.不要复制扩展名为OBJ和EXE的文件到考试盘上。

第八套C 语言上机试题

一、改错题

【题目】从键盘输入十个字符串,从中求出最长的一个字符串,并将该串及其长度送入MYF1.OUT 中。含有错误的源程序为:

#include

main( )

{int i ,maxlen,len;

char inline[10][100],maxline[100];

FILE *fp;

if((fp =fopen("myf1.out","w"))= =NULL) EXIT(1);

for(i=0;i <10;i ++)

{gets(inline[i]);

fprintf(fp, "%s\n",inline[i ]); }

maxlen =0

for(i =0;i <10;i ++)

{strlenth(inline[i ],&len);

if(len>maxlen)

strcpy(maxline,inline[i ]),maxlen=len;

}

fprintf(fp, "max string is:%s\n maxlen=%d\n",maxline,maxlen);

fclose(fp);

}

strlenth(char *p, int *len)

{*len=0;

while (p[len]!= '\0')++len;

}

【要求】

1. 将上述程序录入到文件myf1.c 中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2. 改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

3. 改正后的源程序myf1.c 保存在考试盘的根目录下,供阅卷用,否则不予评分;并将输入的字符串和运行结果以myf1.out 为文件名也保存在考试盘的根目录下。

二、编程题

【题目】计算自然数e 和圆周率π的值,e 精确到小数点后6位。

求e 的近似值的计算公式为:

e=1+1/1!+1/2!+1/3!+……+1/n!+……(n=0,1,2,3,…)

求π/2的近似值的计算公式为:

()()()() ?+???-?????????=1221227

656543432122n n n n π

其中n =1,2,3,……,取n=1000时的π值。

【要求】

1. 将源程序文件取名为myf

2.c,程序运行的结果保存于myf2.out文件中。

2. 数据文件的打开、使用和关闭等操作均用C语言标准库中缓冲文件系统的文件操作函数实现。

3. 源程序文件和运行结果文件均需保存在考试盘的根目录下,供阅卷用。

4. 不要将myf2.obj和myf2.exe保存到考试盘上。

第九套C 语言上机试题

一、改错题

【题目】函数check 检查给定的字符串s 中左圆括号与右圆括号的个数是否匹配,若两者个数匹配则函数返回值为0,若左括号数大于右括号数则返回两者差值的负值,否则返回两者差值的正值。

#include

main()

{char a[100];

int i;

a="(((a+b)-c)*d)-e";

i=check(a);

printf("a=%s i=%d\n",a,i); }

int check(s)

char *s;

{int left,right;

left=0,right=0;

while(s='\0')

{if(*s= ='(')left++;

if(*s= =')')right++;

s++;

}

if(left>right)return(left-right);

else if(left

return(0); }

【要求】

1.将上述程序录入到文件myf1.c 中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序myf1.c 保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题

【题目】在直角坐标系统中,直线方程y=ax+b 和圆方程x 2+y 2=r 2,两者之间有三种情况:直线和圆不相交,相切,相交于两点。

令4(a 2r 2+r 2-b 2)=t1,则有:

(1)当t1<0时,直线与圆不相交,输出:"No solutions! "

(2)当t1=0时,直线与圆相切,输出切点的坐标:

)

1(2221+-=a ab x y 1=ax 1+b (3)当t1>0时,直线与圆相交,输出两个交点的坐标:

)

1(21221+--=a t ab x y 1=ax 1+b )1(21222++-=

a t a

b x y 2=ax 2+b 方程的系数要求:

系数a ,b , r 分别取以下值

3 4 5

【要求】

1.将源程序文件取名为myf2.c ,输出结果保存在文件myf2.out 中。

2.数据文件的打开、使用和关闭均用C 语言标准库中缓冲文件系统的文件操作函数实现。

3.源程序文件和运行结果文件均需保存在考试盘的根目录下,供阅卷用。

4.不要复制扩展名为OBJ 和EXE 的文件到考试盘上。

第十套C语言上机试题

一、改错题

【题目】输入一行字符串,把该字符串中的每一个字母串的首字母都换成大写字母,并输出转换后的字符串。如输入good mor23ning!,则输出为Good Mor23Ning!。

注:字母串是以字母开头的字母序列(不区分大小写),即不同字母串之间用非字母隔开。#include

int change(char *c,int flag)

{if(flag= =0 &&(*c<='z'&&*c>='a'||*c<='Z'&&*c>='A'))

{if(*c<='z'&&*c>='a') *c=*c-'a'+’A’;

return 1;}

else if(flag= =1 &&!(*c<='z'&&*c>='a'||*c<='Z'&&*c>='A'))

return 0;

return flag; }

main()

{int flag=0;

char c;

for(;(c=getchar())!='\n';)

{flag=change(&c,flag);

putchar(c);

}

putchar('\n'); }

【要求】

1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

2.改错时,可以修改语句中的一部分内容,调整语句的次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

3.改正后的源程序myf1.c保存在考试盘的根目录下,供阅卷用,否则不予评分。

二、编程题

【题目】用筛选法求100以内的素数。算法为:

1.用一个一维数组a,其初值为:2,3,4,5,6,7,8,9, (100)

2.对每一元素a[i](i=1,2,……,99),若a[i]不等于0,则从该元素的后一个元素开始,凡是a[i]倍数的数组元素均不是素数(置为0);

3.数组a中不为0的元素,均为素数。

【要求】

1.将源程序文件取名为myf2.c,输出结果保存在文件myf2.out中。

2.数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。3.要求每一行输出5个素数。

4.源程序文件和运行结果文件均需保存在考试盘的根目录下,供阅卷用。

5.不要复制扩展名为OBJ和EXE的文件到考试盘上。

第十一套C语言上机试题

一、改错题

【题目】

下面的程序读入一串字符(以“#”结束),将长度最长的单词、该单词的长度以及未在该单词中出现的字母输出(若这样的单词多于一个,则只取第一个)。假定串中只含小写字母和其他非字母字符,把由非字母字符隔开的字母串叫做单词,而不管它是否有意义。

含有错误的源程序如下:

#include

#define max 100

emptys(char *ss)

{int i;

for(i=0;i<26;i++) ss[i]=' ';

}

stringcopy(char *s,char *t,int n)

{int i;

for(i=0;i

}

main()

{char x,s1[26],s2[26];

int length,i;

char a[max],b[max];

length=0; i=0;

emptys(s1);

do{x=getchar();

if((x>='a')&&(x<='z'))

{a[i++]=x; s1[x-97]=x;}

else

{if(i>length)

{stringcopy(s1,s2,26);

stringcopy(a,b,100);

length=i;

}

emptys(s1); i=0;

}

}while(x!='#');

for(i=0;i

printf(" length=%d\n",length);

for(x='a';x<='z';x++)

if(s2[x-97]==' ')printf("%2c",x);

putchar('\n'); }

【要求】

1.将上述程序录入到文件myf1.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改。

C语言上机报告答案

2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句 改成:printf("%c %c %d\n",a,b,c);

C语言上机实验[1]

实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏)

C语言 数组 实验题目及答案

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用二维数组进行程序设计 【实验内容】 一、上机验证程序,并分析结果 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。1、#include int main() { int a[ ]={1,2,3,4,5} , i, j, s=0 ; j = 1; for ( i = 4 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(" s= %d \n" , s ); return 0; } 二、程序改错题 1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。源代码如下,程序中存在错误,请将其改正。 #include int main()

{ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++) {/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++) {/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个\n",count); return 0; } 三编写程序 1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。#include #define N 30 int main() { float score[N],sum=0,aver; int i; for(i=0;i<30;i++) { scanf("%f",&score[i]); sum=sum+score[i]; } aver=sum/30; printf("平均分为:%.2f\n",aver); for(i=0;iaver) printf("%.2f ",score[i]); printf("\n");

C语言上机实验题

第六章循环控制 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范。 2.学习并掌握利用while语句、for语句、do_while语句实现循环结构。 3.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 4.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序6_1.c、6_2.c、6_5.c、6_6.c、6_8.c上传至211.64.135.121/casp。 本章开始,上机实验项目量加大,希望同学们多多自行上机。本章实验项目有余力都可以做一下并上交。 循环程序设计 计算机解决问题都是按指定的顺序执行一系列的动作。按照特定的顺序执行相应的动作来求解问题的过程称为算法。程序中的语句是算法的体现,而算法要解决的是“做什么”和“怎么做”的问题。 计算机程序中指定语句的执行顺序称为“程序控制”。结构化的程序控制包含三种基本结构:顺序结构,选择结构和循环结构。 1. 循环设计 循环是在循环条件为真时反复执行的一组计算机指令,是计算机解题的一个重要结构。循环控制有两种基本方法:计数法和标志法。 1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 教材例6.2、6.3、6.7都是典型的计数器控制的固定次数次数循环。 2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,教材例6.6中以|t|的值达到标记下限值1e-6作为循环的结束。 循环设计时要注意合理设计循环条件,使得循环不会成为死循环。 2. 算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1)穷举 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例:输入两个正整数x和y,求其最大公约数。 main() {int x,y,i,flag; printf("Please input two numbers:"); scanf("%d%d",&x,&y);

C语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

C语言上机综合实验一及答案

1、编制程序,输入n 个整数(n 从键盘输入,n>0),输出它们的偶数和。 2、 编程,输入n 后:输入n 个数,根据下式计算并输出y 值。 3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。 4、编写程序,输入一个正整数n ,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n ,函数返回值的类型是double 。 5、输入一个正整数n ,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n 的阶乘,函数返回值的类型是单精度浮点型。 答案: 程序1、 #include void main () { int n,i,x,sum=0; while(scanf("%d",&n),n<=0); printf ("请输入%d 个数:", n); for (i=1; i<=n ;i++) { scanf("%d",&x); if(x%2==0) sum+=x; } printf ("sum=%d", sum) ; } 程序2、 #include #include void main( ) { int i,n; float x,y; scanf(“%d”,&n); for(i=1;i<=n;i++){ scanf(“%f”,&x); if(x<-2) y=x*x-sin(x); else if(x<=2) y=pow(2,x)+x; else y=sqrt(x*x+x+1); printf(“%f \n”,y); } } 程序3、 # include void main( ) { int letter,digit,other; ?????>++≤≤-+-<-=2 12222sin 22x x x x x x x x y x 111111...23n k s k n ===++++∑

C语言上机实验例题

实验一 C语言的运行环境、运行过程和表达式的使用 一、目的与要求 1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。 2、了解在该系统上如何编辑、编译、连接和运行一个C程序。 3、通过运行简单的C程序,初步了解C源程序的特点。 4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。 5、学会使用C的有关算术运算符,以及包含这些运算符的表达式 二、实验例题 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. 在Turbo C的集成环境下,键入如下源文件。敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认文件名改为任意文件名。程序如下: main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); } 然后用Ctrl+F9执行,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。按回车键重新返回Turbo C的编辑环境。注意,在运行程序之前最好先存盘。 【例2】输入并运行程序,写出运行结果。 main() {

int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); } 运行方法同上,最后结果为:sum is 579。 【例3】 输入并运行程序,写出运行结果。 main() { int a,b,c; int max(int,int); scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max=%d”,c); } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); } 这个程序的功能是对于任意输入的两个整数,输出较大的那个数。所以程序运行之后,光标将停留在用户屏幕上,等待用户输入两个整数,比如输入“3,5”,回车,在用户屏幕上就会输出“max=5”。 【例4】输入并运行下程序,写出运行结果。 mian() { char c1 , c2;

大一C语言上机实验试题和答案

实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include void main( ) { int a,b,c,d; printf(“Please enter a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d);

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

c语言上机实验

上机实验九函数 第1题:编写一个函数,利用参数传入一个3位数n,找到101~n间满足下列条件的数:他是完全平方数,又有两位数字相同,如144、676,函数返回这样的数的个数(提示,可以利用函数的嵌套调用,编写一个函数,判断一个整数是否满足条件)。 #include #include int main() { int number,a; int g(int ); printf("请输入一个大于101的三位数:"); scanf("%d",&number); a=g(number); printf("a=%d",a); return 0; } int g(int number) { int i,j,m,n,o,k=0; for(i=101;i<=number;i++) { j=sqrt(i); if((j*j)!=i) continue; m=i/100; n=i/10%10; o=i%10; if(m==n||m==o||n==o) {printf("%d\n",i);k++;} } return (k); } 第2题:编写有两个整数参数的函数multiple,用该函数确定一对整数中第二个整数是否第一个整数的整数倍,如果是,返回1,否则返回0。 #include #include main() {

int multiple(int x,int y); int x,y,a; printf("请输入两个整数x,y:"); scanf("%d%d",&x,&y); a=multiple(x,y); printf("%d",a); } int multiple(int x,int y) { int m,n; m=y%x; if(m!=0) n=0; else n=1; return (n); } 第2题:编写一个函数,用时间作为函数的三个参数(时、分、秒),返回自零点到该时间的秒数,并用这个函数计算同一天内两个时间之间的秒数。 #include int main() { int x1,x2,y1,y2,z1,z2,x,y; int time1(int x1,int y1,int z1); int time2(int x1,int y1,int z1,int x2,int y2,int z2); printf("请输入一个时间的时,分,秒x1,y1,z1:"); scanf("%d%d%d",&x1,&y1,&z1); printf("请再输入一个时间的时,分,秒x2,y2,z2:"); scanf("%d%d%d",&x2,&y2,&z2); x=time1(x1,y1,z1); y=time2(x1,y1,z1,x2,y2,z2); printf("%d,%d",x,y); return 0; } int time1(int x1,int y1,int z1) { int sum; sum=3600*x1+60*y1+z1; return sum; } int time2(int x1,int y1,int z1,int x2,int y2,int z2)

大学大一c语言程序设计实验室上机题全部代码答案实验报告

C语言实验报告 实验1-1: hello world程序: 源代码: #include main() { printf(hello world!\n); system(pause); } 实验1-2: 完成3个数据的输入、求和并输出计算结果的程序:源代码: #include main() { int i,j,k,sum; scanf(%d%d%d,&i,&j,&k); sum=i+j+k; printf(sum=%d,sum); system(pause); 实验1-3: 在屏幕上输出如下图形: A BBB CCCCC 源代码: #include main() { printf( A\n); printf( BBB\n); printf( CCCCC\n); system(pause); } 实验2-1: 计算由键盘输入的任何两个双精度数据的平均值

源代码: #include main() { double a,b; scanf(%lf%lf,&a,&b); printf(%.1lf\n,(a+b)/2); system(pause); } 实验2-2: 写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f –g 表达式进行运算源代码: #include main() { float a,b,c,d,e,f,g,x; scanf(%f%f%f%f%f%f%f,&a,&b,&c,&d,&e,&f,&g); x=a + b * (c - d ) / e * f - g; 牰湩晴尨?春??※ system(pause); } 实验2-3: 编写一个C语言程序,测试下列各表达式: i, j i + 1 , j + 1 i++ , j++ ++i , ++j i+++++j 源代码: #include main() { int i=1,j=1; printf(%d %d\n,i+1,j+1); printf(%d %d\n,i++,j++); printf(%d %d\n,++i,++j); printf(%d\n,(i++)+(++j)); system(pause); } 实验2-4: 输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税

C语言上机实验心得(20200505190812)

C语言上机实验心得 C语言上机实验心得 1 在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复 杂程序。在这里,我作为其中的参与者,感触良多。 在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功, 让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对C语言的学习产生浓厚的兴趣。 还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲 课中海给我们分享他在公司上班的一些心得和体会,还有那些我们应该注意的事项,这些是平时上课时无法学到的,是更深层次的巨大收

获。通过这次实训,也使我们发现了许多问题。 在实训中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。而且遇到一些小错 误运行不出来,就会烦躁不安,觉得有些自暴自弃或者抱怨项目的变态,以后要克服,尽量保持一颗良好的心态,学好C语言,也学好用C语言编写一个按要求的系统。 还有就是对于未来,近程就是下学期,我觉得我还有许多方面需要提高。首先我要继续学习好C语言的基础知识,然后能在电脑上熟练的运用。然后每天都能写一些程序,上网时候多看一些优秀的教程和优秀的代码。遇到问题时多和同学讨论,并且多弄出几套方案,多锻炼自己结局问题的能力和与同学合作的能力。 总之,这一切都成为我记忆里面的一个篇章,更是在C语言编程上的一个里程碑。 C语言上机实验心得 2 在科技高度发展的今天,计算机在人们之中的作用越来越突出。 而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了 更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们 必须实际上机、编写程序。

C语言习题与实验

习题与上机实验总的目的和要求 目的: 实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题,从而进一步提高分析问题和解决问题的能力。C 程序设计课程实践性很强,即要求独立编写程序,学会独立上机调试程序。 学会独立上机调试程序。也就是要善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。计算机技术是实践性很强的技术,要求从事这一领域的人不仅能了解和熟悉有关理论和方法,还要求自己动手实践。对程序设计来说,要求会编写程序并上机调试通过。因此调式程序本身是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。调式程序的经验固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来积累,而且有些经验是只能“会意”难以“言传”。因此,在实验时不但要达到通过程序完成每一次的实验任务,而且应当在已通过的程序基础上作进一步的修改、提高和完善。甚至于“自设障碍”,即把正确的程序改为有错的(如用scanf函数为输入变量输入数据时,漏写“&”符号,double变量使用格式符“%f”;使数组下标出界;使整数溢出等等),观察和分析所出现的情况。这样的学习才会有真正的收获。实验目的可归纳如下: 1.验证自己已建立起来的概念或所编写的程序是否正确; 2.加深对课堂所学内容的理解和语法规则的记忆; 3.理解和掌握运用计算机高级语言进行编程的思想方法; 4.掌握常用算法的设计与应用实现; 5.熟悉UNIX等程序开发环境,掌握C程序常用的调试手段; 6.学会上机调试程序的方法,不断积累调试经验,提高排错能力; 7.使自己具有独立的应用编程和熟练的程序调试能力。 要求: 1.做好每一次上机前的准备以提高上机效率: ①预先认真阅读相关实验内容,做到心中有明确的目的要求和任务,要有备而来; ②按照实验内容规定的习题题目,事先在实验预习报告上编写好源程序及运行程序 所需的典型数据,并经人工静态检查认为无误;手编程序应书写整齐,应在每个题目之间留出一定的空间,以备记录上机调试情况和运行结果等;对程序中自己有疑问的地方,应作出记号,以便上机时给以注意。 ③将想要上机验证的问题草拟提纲;制定一个简捷的程序调试计划。

C语言实验课题目

目录 实验1 输入输出 (2) 实验2 选择语句 (4) 实验3 循环语句 (5) 实验4 函数 (6) 实验5 指针 (8) 实验6 数组 (9) 实验7 结构体 (10)

实验1 输入输出 要求掌握: 1、VC++平台的使用; 2、C源程序的建立、保存、编译和运行; 3、变量的定义、赋值和运算; 4、printf函数的使用; 5、scanf函数的使用; 6、int、long、float、double、unsigned的含义; 7、关键字、预定义标识符和用户标识符的区别; 8、自加自减运算符的使用。 完成下列题目: 1. 键盘输入与屏幕输出练习 问题1 要使下面程序的输出语句在屏幕上显示1, 2, 34,则从键盘输入的数据格式应为以下备选答案中的。 #include main() { char a,b; int c; scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%d\n",a,b,c); } A)1 2 34 B)1, 2, 34 C)’1’,’2’,34D)12 34 问题2 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示12 34,则应修改程序中的哪条语句?怎样修改? 问题 3 要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改? 问题4 要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪条语句?怎样修改? [提示:利用转义字符输出字符单引号字符。]

华南农业大学C语言上机实验答案

格式:一题号一答案,相对应 1001 #include "stdio.h" int main() { int a,b; scanf("%d%d",&a,&b); printf("%d",a+b); } 1007 #include "stdio.h" int main() { int a,b; scanf("%d%d",&a,&b); printf("%d",a+b); } 1014 #include"stdio.h" void main() { float area,r; scanf("%f",&r); area=3.14159*r*r; printf("%0.2f",area); } 1015 #include void main() {float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f",c); } 1016 #include main() {char a,b,c,d,e; scanf("%c%c%c%c%c",&a,&b,&c,&d,&e); if(a<='Z'&&a>='A')a=a+32;

if(b<='Z'&&b>='A')b=b+32; if(c<='Z'&&c>='A')c=c+32; if(d<='Z'&&d>='A')d=d+32; if(e<='Z'&&e>='A')e=e+32; printf("%c%c%c%c%c",a,b,c,d,e); } 1017 #include "stdio.h" void main() {int n,place; scanf("%ld",&n); if(n>99999999)place=9; else if(n>9999999)place=8; else if(n>999999)place=7; else if(n>99999)place=6; else if(n>9999)place=5; else if(n>999)place=4; else if(n>99)place=3; else if(n>9)place=2; else place=1; printf("%ld\n",place); } 1018 #include main() {int a,b,c,t; scanf("%d,%d,%d",&a,&b,&c); if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(b>c){t=b;b=c;c=t;} printf("%d,%d,%d",a,b,c); } 1019 #include"stdio.h" main() {int a,b,c,d,e; scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); if(a%27==0)printf("YES\n");else printf("NO\n"); if(b%27==0)printf("YES\n");else printf("NO\n"); if(c%27==0)printf("YES\n");else printf("NO\n"); if(d%27==0)printf("YES\n");else printf("NO\n");

c语言上机实验完整答案

%c 字符形式输出, %d 整数形式输出, 实验一 自测练习1 程序代码 #include void main() { int x; scanf("%d",&x); //%d十进制整型,&指x在内 存中的地址。上面 scanf的作用是:按照 x在内存的地址将x 的值存进去, if (x%2 !=0) printf("%d is an odd\n",x); else printf("%d is an even\n",x); }

运行结果 自测练习2 程序代码 #include void main() { int i, sum; i=1 ; sum=0;

while (i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); } 运行结果 自测练习3 程序代码 #include void main( ) { int i, n; long p;

p=1; printf("Enter n:"); scanf("%d",&n); for (i=1; i<=n; i++) p=p*i; printf(" p=%ld\n", p); } 运行结果 自测练习4 程序代码 #include"stdio.h" int max(int x,int y) {int z; if (x>y) z=x;else z=y; return(z); } void main() {int a,b,c;

scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); } 运行结果 自测练习5 程序代码 #include"stdio.h" void main() {int x,y; for(x=0;x<=25;x++) for(y=0;y<=50;y++) if(4*x+y*2==100) printf("兔=%d,鸡=%\n",x,y); } 运行结果

C语言实验答案

上机实验参考答案 实验1 #include "stdio.h" #include"math.h" int main() { int i; double a, b; for(i=0;i<=100000;++i) {a=sqrt(i+100); b=sqrt(i+168); if((int)a==ceil(a)&&(int)b==ceil(b)) printf("%d\n",i);} } 实验2 基本数据类型、运算和表达式 一、实验目的 1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。2)掌握不同的类型数据之间赋值的规。 3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加++ )和自减--)运 算符的使用。 4 )进一步熟悉C 程序的编辑、编译、连接和运行的过程。 二、实验内容 1. 变量的定义 [题目1117:变量定义,按要求完成程序]

下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。 void main() { int a, b; /*定义整型变量a 和b*/ int i, j; /*定义实型变量i 和j */ a=5; b=6; i=3.14;j=i*a*b; printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j); } [具体操作步骤] 1)将代码补充完整; 2)在TC 或VC++上运行通过; 3)在JudgeOnline 实验系统上提交; 2. 赋值表达式与赋值语句 [题目1118:赋值表达式与赋值语句,写出程序运行结果] 阅读下面程序,写出运行结果: void main() { float a; int b, c; char d, e; a=3.5; b=a; c=330; d=c; e='\\'; printf("%f,%d,%d,%c,%c", a,b,c,d,e); } 运行结果为: 3.500000,3,330,J,\ [提示]赋值语句具有类型转换的功能,但可能会改变数据。 3. 基本运算

相关主题
相关文档 最新文档