C程序设计教程与实验 实验二 吉顺如
- 格式:docx
- 大小:13.53 KB
- 文档页数:2
计算机基础综合实验(2)任务书一、综合实验目的C语言程序设计是本科工科类各专业的重要基础课,主要学习程序设计的基本概念和方法,通过本门课程学习,使学生掌握C语言的基本原理,熟练掌握程序设计的基础知识、基本概念;掌握程序设计的思想和编程技巧。
综合实验是在学生已经具备了使用C语言编写简单的应用程序的能力,为使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。
并为参加计算机等级考试做准备。
二、综合实验的基本内容和要求参加综合实验的学生,应当认真完成综合实验的全部内容。
最终提交综合实验成果来证明其独立完成各种实际任务的能力。
从而反映出理解和运用本课程知识的水平和能力。
具体如下:1、代码编写规范,形成良好的编程习惯;2、程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。
3、提交综合实验报告电子稿、装订的打印稿。
综合实验报告内容包括以下几个方面:●程序的总体设计和算法分析。
●程序流程图、函数说明●源程序代码清单●测试数据和测试过程记录●遇到的问题及解决方法分析●综合实验小结4. 程序运行方式构建一个简易菜单,形如:用户通过输入数值选择所需运行的子程序,当一个子程序运行结束后回到菜单界面,直至用户输入0后退出程序。
三、综合实验的进度安排熟悉指针、结构体、文件内容1天整体设计和详细设计、编代码1天编代码、调试和测试1天综合实验报告书写1天演示软件1天四、综合实验的考核评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的综合实验报告,严格检查以下各项任务完成情况:1、设计文档中要求项目是否齐全。
2、程序中运行时的屏幕提示信息是否准确:如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。
3、问题和任务的陈述(描述问题,而且问题是合理原始的、应当包括输入、输出及其预期范围)是否正确。
实验1熟悉Visual C++6.0环境及运行C程序一、实验目的1.掌握在Visual C++6.0环境下C程序的建立、编辑、编译和执行过程。
2.掌握C程序的最基本框架结构,完成简单程序的编制与运行和调试。
3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
二、实验内容1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。
输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。
#include <stdio.h>main(){int a,b,sum; /*定义整型变量a、b、sum */printf("Please Input a,b \n "); /*输出提示信息*/scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予a和b*/sum=a*a+b*b; /*赋值语句,把a2+b2的结果赋给变量sum*/printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/}2. 改错题(1计算x*y 的值并将结果输出。
试纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_2.c 保存。
#include <stdio.h>main main (){ int x=2;y=3;a int x=2,y=3,a ; A=x*y a =x*y ;print ('a=%d",A); print f ("a=%d",a );printf("\n");}(2)下程序的功能为:求两数中的较大数据并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_3.c 保存。
#include <stdio.h>viod main() void main() {int a ,b , max;Scanf(“%d,%d ”,&a,&b); s canf(“%d,%d ”,&a,&b); Max=a; m ax=a;If (max<b) max=b; i f (max<b) max=b; Printf(“max=%d ”,max); p rintf(“max=%d ”,max); }3.程序填空题(1)从键盘输入两个整数,输出这两个整数的和。
c程序设计教程与实验吉顺如答案【篇一:c程序设计教程与实验实验一答案吉顺如】destdio.hmain(){inta,b,sum;printf(please input a,b\n); scanf(%d%d,a,b);sum=a*a+b*b;printf(%d+%d=%d\n,a,b,sum); }1.2#includestdio.hmain(){int x=2,y=3,a;a=x*y;printf(a=%d\n,a);}1.3#includestdio.hmain(){inta,b,max;scanf(%d%d,a,b);max=a;if (maxb) max=b;printf(max=%d\n,max);}1.4#includestdio.hmain(){intx,y,total;printf(please input x,y!); scanf(%d%d,x,y);total=x+y;printf(%d+%d=%d\n,x,y,total); }1.5#includestdio.hmain(){inta,b,m;printf(please input a,b\n);scanf(%d%d,a,b);m=a-b;printf(m=%d\n,m);}1.6#includestdio.hmain(){printf(better city,better life!\n);}1.7#includestdio.hmain(){inta,b,c,sum;printf(please input a,b,c:\n); scanf(%d%d%d,a,b,c);sum=a*a+b*b+c*c;printf(%d+%d+%d=%d\n,a,b,c,sum); }【篇二:03303043高级语言程序设计(上)期末考试试卷a(上机考试)】043)《高级语言程序设计》(上)期末考试试卷a卷开课学院:出卷教师:考试形式:闭卷考试时间上机考?考生姓名:赵君阳学号:19班级:一、选择题(共20分,每小题1分)1.在一个c语言程序中下列说明正确的是( b)a)main()函数必须出现在所有函数之前 b)main()函数可以在任何地方出现c)main()函数必须出现在所有函数之后 d)main()函数必须出现在固定位置2.二进制语言是属于(a )a)面向机器语言 b)面向问题语言 c)面向过程语言 d)面向汇编语言3.下列符号串中,属于c语言合法标识符的是(a )a) float b)sum onec)2max d)max24.以下选项中合法的c语言字符常量是( c)a) ‘\092 b) x c) ‘\xab’ d) ‘xy’5.若有以下程序段,则变量c的二进制值是( a )int a=6,b=3,c;c=a^b2;a)00011011 b) 00001010c)00011000 d)000001106.要输入实数,用格式字符(c)。
c语言程序设计实验2C语言程序设计实验2实验目的:1. 熟悉C语言的基本语法和结构。
2. 掌握变量声明、数据类型以及运算符的使用。
3. 学习控制结构,包括条件语句和循环语句。
4. 理解数组和字符串的基本操作。
5. 通过编写程序解决实际问题,提高编程能力。
实验环境:1. 编译器:GCC或任何支持C语言的编译器。
2. 开发环境:任何文本编辑器和命令行界面。
实验内容:1. 编写一个程序,实现两个整数的加法运算,并打印结果。
2. 编写一个程序,实现字符串的复制和连接。
3. 编写一个程序,使用循环结构实现1到100的累加求和。
4. 编写一个程序,使用条件语句判断一个数是否为素数。
5. 编写一个程序,实现简单的学生成绩管理系统。
实验步骤:1. 整数加法程序:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数,用空格分隔:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```2. 字符串操作程序:```c#include <stdio.h>#include <string.h>int main() {char str1[100], str2[100], result[200];printf("请输入第一个字符串:");fgets(str1, sizeof(str1), stdin);printf("请输入第二个字符串:");fgets(str2, sizeof(str2), stdin);// 去除fgets读取的换行符str1[strcspn(str1, "\n")] = 0;str2[strcspn(str2, "\n")] = 0;strcpy(result, str1);strcat(result, str2);printf("复制和连接后的字符串是:%s\n", result); return 0;}```3. 循环求和程序:```c#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 100; i++) {sum += i;}printf("1到100的累加和是:%d\n", sum); return 0;}```4. 素数判断程序:```c#include <stdio.h>#include <math.h>int isPrime(int num) {if (num <= 1) return 0;for (int i = 2; i <= sqrt(num); i++) { if (num % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
C程序设计教程课后习题答案吉顺如版一、选择题1、A2、D3、C4、D5、B6、C7、C8、B9、B10、A二、填空题1、一,函数体2、main(主),main(主)3、编译,目标4、.c,.obj,.exe5、缩进,无影响,/**/三、程序分析题1、*****************Verygood!*****************2、a=12,b=5a=17,b=223、r=,s=四、编程题1.用printf()函数在屏幕上输出自己的班级、学号、姓名。
#include""{printf("班级:BX1109\n");printf("学号:\n");printf("姓名:王孟荣\n");}2.从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。
#include<>voidmain(){intx,y,a,b,c;floatd;printf("PleaseInputTwoIntegers:\n");scanf("%d%d",&x,&y);a=x+y;b=x-y;c=x*y;d=*x/y;printf("a=%d\nb=%d\nc=%d\nd=%f\n",a,b,c,d); }第2章习题一、选择题1~5BCDCD6~10DBBCA二、填空题1.单精度浮点型、双精度浮点型、字符型2.03.x%10*10+x/104.5.206.sin(sqrt(x*x))/(a*b)7.,8.11110111737B9.3310.3三、程序分析题1.7,8,102.1,33.5F4.(int)i=12,5.461579112四、编程题1.编写程序,求表达式c=21%9-(float)a+4/b*b的值,假设表达式中a和b的值分别由键盘输入。
#include<stdio.h>struct stud{char name[20];int age;} ;struct stud fun(struct stud person[],int n){int min,i;min=0;for(i=0;i<n;i++)if(person[i].age <person[min].age) min=i;return (person[min]);}void main(){struct stud a[]={{"Zhao",21},{"Qian",20},{"Sun",19},{"LI",22}};int n=4;struct stud minpers;minpers=fun(a,n);printf("%s 是年龄小者,年龄是:%d\n",,minpers.age); }Sy9-2#include <stdio.h>#include <string.h>#define NUM 4struct student{ int rank; /* 学生排名*/char name[4]; /* 学生姓名*/float score; /* 学生成绩*/}stu[]={ 3,"Tom",89.3,4,"Mary",78.2,1,"Jack",95.1, 2,"Jim",90.6 };main(){ char str[10];int i;do{ printf("Entre a name:");scanf("%s",str);for(i=0;i<NUM;i++)if( (strcmp(str,stu[i].name)==0) ){ printf("name: %5s\n",stu[i].name);printf("rank: %d\n",stu[i].rank);printf("average:%5.1f\n",stu[i].score);}if(i>=NUM) printf("Not found\n");} while(strcmp(str,"0")!=0);}Sy9-4#include <stdio.h>#define N 4struct student{int score; /* 学生成绩*/char name[10]; /* 学生姓名*/} s[N];void main(){int i, score90, score80, score70, score60, score_failed;for(i=0; i<N; i++)scanf("%d%s",&s[i].score,s[i].name); /* 输入N个学生成绩、姓名,存入数组s中*/ score90=0; score80=0; score70=0; score60=0; score_failed=0;for(i=0; i<N; i++){ switch(s[i].score/10){ case 10:case 9:score90++; break;case 8:score80++; break;case 7:score70++; break;case 6:score60++; break;default: score_failed++;}}printf("优:%d良:%d 中:%d 及格:%d 不及格:%d\n",score90,score80,score70,score60, score_failed);}Sy9-5#include<stdio.h>static struct person{char name[20];int age;} person[]={"li-ming",18,"wang-hua",19,"zhang-ping",20 };main(){int i,max,min;max=min=person[0].age;for(i=1;i<3;i++)if(person[i].age>max) max=person[i].age;else if(person[i].age<min) min=person[i].age;for(i=0;i<3;i++)if(person[i].age!=max&&person[i].age!=min){printf("%s %d\n",person[i].name,person[i].age);break;}}Sy9-6#include<stdio.h>struct node{char data;struct node *link;}*head;ins(struct node *q){if(head==NULL){q->link=NULL;head=q;}else{q->link=head;head=q;}}main(){char ch;struct node *p;head=NULL;while((ch=getchar())!='\n'){p=(struct node*) malloc(sizeof(struct node));p->data=ch;ins(p);}p=head;while(p!=NULL){printf("%c",p->data);p=p->link;}}Sy9-7#include<stdio.h>struct students{ char num[10];char name[10];float math,eng,c,sum;}st[5];main(){ int i,j,k;float max,min;for(i=0;i<5;i++){ printf("please input %d student's number,name,mathscore,engscore and csore:\n",i+1); scanf("%s%s",st[i].num,st[i].name);scanf("%f%f%f",&st[i].math,&st[i].eng,&st[i].c);st[i].sum=st[i].math+st[i].eng+st[i].c;}min=max=st[0].sum;for(i=1;i<5;i++){ if(st[i].sum>max) {max=st[i].sum;k=i;}if(st[i].sum<min) {min=st[i].sum;j=i;}}printf("%s,%s\n",st[k].num,st[k].name);printf("%.2f,%.2f,%.2f\n",st[k].math,st[k].eng,st[k].c);printf("%s,%s\n",st[j].num,st[j].name);printf("%.2f,%.2f, %.2f\n",st[j].math,st[j].eng,st[j].c);}Sy9-8#include<stdio.h>struct students{ char num[10];char name[10];float math,eng,c,sum;}st[5];main(){ int i,j,k;float max,min;for(i=0;i<5;i++){ printf("please input %d student's number,name,mathscore,engscore and csore:\n",i+1); scanf("%s%s",st[i].num,st[i].name);scanf("%f%f%f",&st[i].math,&st[i].eng,&st[i].c);st[i].sum=st[i].math+st[i].eng+st[i].c;}min=max=st[0].sum;for(i=1;i<5;i++){ if(st[i].sum>max) {max=st[i].sum;k=i;}if(st[i].sum<min) {min=st[i].sum;j=i;}}printf("%s,%s\n",st[k].num,st[k].name);printf("%.2f,%.2f,%.2f\n",st[k].math,st[k].eng,st[k].c); printf("%s,%s\n",st[j].num,st[j].name);printf("%.2f,%.2f, %.2f\n",st[j].math,st[j].eng,st[j].c); }。
第1章习题一、选择题1、A2、D3、C4、D5、B6、C7、C8、B9、B 10、A二、填空题1、一,函数体2、main(主),main(主)3、编译,目标4、.c,.obj,.exe5、缩进,无影响,/* */三、程序分析题1、*****************Very good!*****************2、a=12,b=5a=17,b=223、r= 5.50,s=95.033098四、编程题1.用printf()函数在屏幕上输出自己的班级、学号、姓名。
#include"stdio.h"void main(){printf("班级:BX1109\n");printf("学号:111003530901\n");printf("姓名:王孟荣\n");}2.从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。
#include<stdio.h>void main(){int x,y,a,b,c;float d;printf("Please Input Two Integers:\n"); scanf("%d%d",&x,&y);a=x+y;b=x-y;c=x*y;d=1.0*x/y;printf("a=%d\nb=%d\nc=%d\nd=%f\n",a,b,c,d); }第2章习题一、选择题1~5 BCDCD6~10 DBBCA二、填空题1.单精度浮点型、双精度浮点型、字符型2.03.x%10*10+x/104.5.55.5.7 206.sin(sqrt(x*x))/(a*b)7.,8.1111011 173 7B9.3 310.3三、程序分析题1.7,8,102.1,33. 5 F4.(int)i=12,12.505. 461579112四、编程题1.编写程序,求表达式c=21%9-(float)a+4/b*b的值,假设表达式中a和b的值分别由键盘输入。
实验四选择结构程序设计(解答)1.改错题(1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。
请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_1.c保存。
#include <stdio.h> Array main(){char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='a')||(ch<='z')) // if((ch>='a')&&(ch<='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch='A') // if(ch=='A')c1=ch+25;else if(ch='Z') // else if(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}改正后的程序:#include <stdio.h>main(){char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='a')&&(ch<='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch=='A')c1=ch+25;else if(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}(2)下列程序的功能为:输入3个整数后,输出其中最大值。
Sy10-1#include<stdio.h>#include<string.h>void main(){FILE *fp1;char ch[80];int i,j;fp1=fopen("D:\\datal.dat","w");for(i=1;i<=4;i++){gets(ch);j=0;while(ch[j]!='\0'){fputc(ch[j],fp1);j++;}fputc('\n',fp1);}fclose(fp1);}Sy10-2#include<stdlib.h>#include<stdio.h>#include<time.h>void main(){int x[10],i,k;FILE *fp2;srand((unsigned)time(NULL));for(i=0;i<10;i++)x[i]=rand();fp2=fopen("data2.dat","w");if(fp2==NULL){printf("Open error \n");exit(0);}for(k=0;k<10;k++)fwrite(&x[k],sizeof(int),1,fp2);fclose(fp2);}Sy10-4#include<stdio.h>#include<stdlib.h>void main(){FILE *fp;int i=0;char *str[]={"visual C++","visual Basic","visual java","visual foxpro"}; if((fp=fopen("file10_4.txt","w"))==NULL){printf("%s不能打开!\n","file10_4.txt");exit(1);}while(i<4){fprintf(fp,"%s",str[i]);i++;}fclose(fp);}Sy10-5#include<stdio.h>#include<stdlib.h>main(){FILE *fp;char c;int i=0,no=0,line=0;if((fp=fopen("text.txt","w"))==NULL){printf("can`t open this file.\n");exit(0);}printf("please input a string.\n");while((c=getchar())!=EOF){if(c>='a'&&c<='z') c=c-32;fputc(c,fp);}fclose(fp);if((fp=fopen("text.txt","r"))==NULL){printf("can`t open this file.\n");exit(0);}while(!feof(fp)){c=fgetc(fp);no++;if(c=='\n') line++;}printf("line=%d character_no=%d\n",line,no);fclose(fp);}Sy10-6#include<stdio.h>#include<stdlib.h>#include<string.h>void main(){FILE *fp6;int i=0;char str[][20]={"visual C++","visual Basic","visual java","visual foxpro"};char s[20];if((fp6=fopen("file10_6.dat","wb"))==NULL){printf("%s不能打开!\n","file10_6.dat");exit(1);}while(i<4){fwrite(str[i],sizeof(str[i]),1,fp6);i++;}fclose(fp6);if((fp6=fopen("file10_6.dat","rb"))==NULL){printf("%s不能打开!\n","file10_6.dat");exit(1);}fread(s,sizeof(s),1,fp6);while(!feof(fp6)){printf("%s\n",s);fread(s,sizeof(s),1,fp6);}fclose(fp6);}Sy10-7#include<stdio.h>#include<stdlib.h>main(){FILE *fp7;int a,m=0,n=0;if((fp7=fopen("number.dat","r"))==NULL){printf("open error\n");exit(0);}while(!feof(fp7)){fscanf(fp7,"%d ",&a);if(a>0)m+=a;elsen+=a;}printf("正整数之和为%d,负整数之和为%d\n",m,n);fclose(fp7);}Sy10-9#include<stdio.h>#include<stdlib.h>#include<string.h>struct student{char num[20];char name[10];float s1,s2,s3,ave;}stu[5],*p=stu;main(){FILE *fp9;int i;for(i=0;i<5;i++,p++){fflush(stdin);printf("\n请输入第%d位学生的学号:",i+1);gets(p->num);printf("请输入第%d位学生的姓名:",i+1);gets(p->name);printf("请输入第%d位学生的三门课成绩:",i+1);scanf("%f%f%f",&p->s1,&p->s2,&p->s3);p->ave=(p->s1+p->s2+p->s3)/3;}p=stu;if((fp9=fopen("stud.dat","w"))==NULL){printf("open error\n");exit(0);}for(i=0;i<5;i++,p++)fprintf(fp9,"%s %s %.2f %.2f %.2f %.2f\n",p->num,p->name,p->s1,p->s2,p->s3,p->ave);fclose(fp9);}。
C程序设计教程与实验介绍C语言是一种被广泛应用于系统开发和嵌入式系统中的高级程序设计语言。
无论是初学者还是有经验的程序员,掌握C 语言都是非常重要的。
本文档旨在提供一个全面而简洁的C 程序设计教程,帮助读者快速上手并深入了解C语言的基础概念和编程技巧。
本文档还包含一些实验项目,旨在帮助读者巩固所学的知识,并通过实践提升自己的编程能力。
目录1.基础知识2.变量和数据类型3.运算符4.条件语句5.循环语句6.函数7.数组8.指针9.结构体10.文件操作11.实验项目基础知识在开始学习C语言之前,有一些基础概念是需要了解的。
C 语言是一种结构化的编程语言,其语法与大多数编程语言相似,但也有一些自己独特的特点。
在本节中,我们将介绍C程序的结构、关键字、标识符等基础知识。
C程序的结构C程序由一个或多个函数组成。
每个C程序都必须包含一个mn函数,作为程序的入口点。
在这个函数中,我们可以定义变量、执行语句和调用其他函数。
关键字C语言中有一些被称为关键字的词汇,这些词汇具有特殊的含义,不能用作标识符。
一些常见的C关键字包括:int:表示整数类型float:表示浮点数类型char:表示字符类型if:用于条件语句for:用于循环语句while:用于循环语句标识符在C语言中,标识符是用来标记变量、函数、数组等用户自定义的名称。
标识符由字母、数字和下划线组成,但必须以字母或下划线开头。
在选择标识符时,应该遵循命名规范,以便代码更易于阅读和理解。
在C语言中,变量用来存储数据,数据类型决定了变量所能存储的值的类型和范围。
在本节中,我们将介绍C语言中的常见数据类型和变量的声明方法。
常见数据类型C语言中有多种数据类型,常见的数据类型包括:int:用来表示整数float:用来表示浮点数char:用来表示单个字符double:用来表示双精度浮点数除了这些基本数据类型,C语言还提供了一些额外的数据类型,如数组、指针、结构体等。
变量的声明和赋值在使用变量之前,需要先声明该变量的数据类型和名称。
目录
目录 (1)
实验一——程序的运行环境和运行C程序的方法 (2)
实验二——数据类型、运算符和表达式 (5)
实验三——数据类型、运算符和表达式 (9)
实验四——逻辑程序设计 (12)
实验五——循环控制 (16)
实验六——数组 (19)
实验七——函数 (21)
实验八——指针 (24)
实验九——文件 (27)
实验十——结构体与共用体 (30)
实验一——程序的运行环境和运行C程序的方法
实验二——数据类型、运算符和表达式
实验三——数据类型、运算符和表达式
实验四——逻辑程序设计
实验五——循环控制
实验六——数组
实验七——函数
实验八——指针
实验九——文件
实验十——结构体与共用体。