大学大一c语言程序设计实验室上机题全部代码答案(实验报告)
更新时间:2023-12-03 07:07:01 阅读量: 教育文库 文档下载
C语言实验报告
实验1-1:
hello world程序: 源代码:
#include
printf(\ system(\ }
实验1-2:
完成3个数据的输入、求和并输出计算结果的程序: 源代码:
#include
int i,j,k,sum;
scanf(\ sum=i+j+k;
printf(\ system(\
实验1-3:
在屏幕上输出如下图形:
A
BBB CCCCC 源代码:
#include
printf(\ A\\n\ printf(\ BBB\\n\ printf(\ system(\ }
实验2-1:
计算由键盘输入的任何两个双精度数据的平均值 源代码:
#include
main() {
double a,b;
scanf(\ printf(\ system(\ }
实验2-2:
写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算 源代码:
#include
float a,b,c,d,e,f,g,x;
scanf(\ x=a + b * (c - d ) / e * f - g; printf(\ system(\ }
实验2-3:
编写一个C语言程序,测试下列各表达式: i, j
i + 1 , j + 1 i++ , j++ ++i , ++j i+++++j
源代码:
#include
int i=1,j=1;
printf(\ printf(\ printf(\ printf(\ system(\ }
实验2-4:
输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。
interest = money(1+rate)year - money
源代码:
#include
int year=2;
float rate=0.1,money=1000; float futureMoney;
futureMoney=money*pow((1+rate),year); printf(\ system(\ }
实验2-5:
输入华氏温度,输出对应的摄氏温度。计算公式如下: c = 5 * ( f - 32) / 9
其中,c表示摄氏温度,f表示华氏温度
源代码:
#include
int c,f;
scanf(\ c = 5 * ( f - 32) / 9; printf(\ system(\}
实验3-1:
编写一个程序完成输入一个整数,输出它的符号 源代码:
#include
int i;
scanf(\ if(i>0) printf(\ else
printf(\
system(\ }
实验3-2:
请编写居民应交水费,并提供各种测试数据。
居民应交水费y(元)与月用水量x(吨)的函数关系式如下: 0 x < 0 y = f(x) = 4x / 3 0 ≤ x ≤ 15 2.5x – 10.5 x > 15
源代码:
#include
float x,y;
scanf(\ if(x<0) printf(\
else if(x>=0&&x<=15) { y=4*x/3; printf(\ }
else if(x>15) { y=2.5*x-10.5; printf(\ }
system(\}
实验3-3:
请根据输入的学生成绩给出成绩等级的判断,判断规则如下: 如果输入的成绩大于等于90,则输出优秀;
如果输入的成绩小于90、大于等于80,则输出良好; 如果输入的成绩小于80、大于等于70,则输出中等; 如果输入的成绩小于70、大于等于60,则输出及格; 其他输出不及格
源代码:
#include
int x;
scanf(\ if (x>=90)
printf(\优秀\\n\
else if (x>=80&&x<90) printf(\良好\\n\
else if (x>=70&&x<80) printf(\中等\\n\
else if (x>=60&&x<70) printf(\及格\\n\ else
printf(\不及格\\n\ system(\}
实验3-4:
运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下: s = 250km 没有折扣 250km ≤ s < 500km 2%折扣 500km ≤ s < 1000km 5%折扣 1000km ≤ s < 2000km 8%折扣 2000km ≤ s < 3000km 10%折扣 3000km ≤ s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费的计算公式为:
f = p * w * s * ( 1 – d )
请编程实现:从键盘输入基本运费p,货物重w,距离s,计算输出用户最终需要支付的运费
源代码:
#include
int p,w,s,f;
scanf(\ float d;
f = p * w * s * ( 1 - d ); if (s=250) { d==0; printf(\ }
else if (s>=250&&s<500) { d==0.02; printf(\ }
else if (s>=500&&s<1000) { d==0.05;
#include
void search(char *s1, char *s2, char *s3) {
char *p;
int word,i,m,n; char a[20]; p=s1; s3[0]='\\0';
while (*p!='\\0') {
word=0;
for (i=0;p[i]!='\\0';i++)//记录单词的长度i {
if (p[i]!=' '&&word==0) { word=1; m=i; }
else if (p[i]==' '&&word==1) { n=i; break; } }
if (p[i]=='\\0'&&word==1) n=i;
if (word==1) {//将单词复制到atemp中 strncpy(a,p+m,n-m); a[n-m]='\\0'; //puts(s3);
char *pfind;// strstr:找出atemp字符串在s2字符串中第一次出现的位置。
if ( (pfind=strstr(s2,a))!=NULL ) { // finded
// 只是找到包含,如果完全一致,应该将找到对应的单词取出来再比较
if ( *(pfind+strlen(a))==' ' || *(pfind+strlen(a))=='\\0' ) if (strlen(a)>strlen(s3)) strcpy(s3,a); }
p=p+n;
}
else break; } }
main() {
char *s1=\char *s2=\ char s3[20]; search(s1,s2,s3); printf(\}
实验8-3:
编写一个主函数,测试上述两个函数的正确性。 结果如上两题所示。
实验8-4:
输入一个字符串,内有数字和非数字字符,例如: A123cdf 456.78cpc876.9er 849.1 将其中连续的数字作为一个实数,依次存放到一数组a中。例如123存放在a[0],456.78存放在a[2],依次类推,统计共有多少个数,并输出这些数。
源代码:
#include
void f(char *sp,float b[]) { char *p; float value; int power,i=0,j=0; p=sp; while(*p) { for(;!(*p>='0'&&*p<='9');p++) value=0; for(value=0;(*p>='0'&&*p<='9');p++,i++) value=value*10+*p-'0'; if(*p=='.') p++; for(power=1;(*p>='0'&&*p<='9');p++,i++) { value=value*10+*p-'0'; power=power*10; }
value=value/power; b[j++]=value; } printf(\数字个数为:%d\\n\}
void main() { int j; float b[4]={0}; char *a=\ f(a,b); for(j=0;j<4;j++) printf(\}
实验9-1:
编写一个建立单链表的函数,设链表的表元素信息包含学号、姓名、一门课的成绩;写一个按照学号查学生成绩的函数;最后写一个主函数,它先调用建立函数,再调用查询函数,显示查到学生的姓名和成绩。
源代码:
#include
}stu[4]={{1,\main() { int i,j; printf(\请输入学号:\\n\ scanf(\ for(j=0;j<4;j++) if(stu[j].num==i) printf(\}
实验9-2:
编一程序,能把从终端输入的一个字符串中的小写字母全部转换成大写字母,要求输入的字符的同时指定该字符在字符串中的序号(即字符在字符串中的顺序号,例如第1个字符的序号为1),字符和序号存入结构体中,字符串存入结构体数组中,然后显示结构体数组的结
果(用字符!表示输入字符串的结束)。
源代码:
#include
实验9-3:
在本实验的实验内容1的基础上,实现在链表元素index之前插入元素的操作Insert( struct node *head, int index)和删除指定位置元素的操作Delete( struct node * head, int index),并编写主函数测试。
源代码:
#include
char name[15]; char num[15]; char risk[15];
struct student *next; };
struct student * fun() {
struct student *p,*q,*head; q=head=NULL; char str[15]={'\\0'};
printf(\请依次输入学生的姓名,学号,成绩:(以'0'作为结束标志)\\n\ while(1) { scanf(\ if(str[0]=='0') break; p=(struct student *)malloc(sizeof(struct student)); strcpy(p->name,str); scanf(\ scanf(\ if(head==NULL) head=q=p; else { q->next=p; q=p; } }
q->next=NULL; return head; }
struct student * park(struct student *head) {
int i;
char str[15];
struct student *p,*q;
printf(\你想要删除某个学生的信息吗?是/否(1/0)\\n\ scanf(\ if(!i) return head;
printf(\请输入你想要删除的学生姓名\\n\ scanf(\
for(p=head,q=NULL;p!=NULL;q=p,p=p->next) if(!strcmp(p->name,str)) break; if(p==NULL) { printf(\没有你要删除的学生的信息\\n\ return head;
} else { if(q==NULL) head=p->next; else { q->next=p->next; } free(p); }
return head; }
struct student *wall(struct student *head) {
int i,j,k=1;
struct student *p,*q,*r;
printf(\你想要添加某个学生的信息吗?是/否(1/0)\\n\ scanf(\ if(!i) return head;
printf(\请输入你想要添加的学生的信息:(依次为:姓名,学号,成绩)\\n\ p=(struct student *)malloc(sizeof(struct student)); scanf(\ scanf(\ scanf(\
printf(\请输入你想要添加到的位置\\n\ scanf(\
for(q=head,r=NULL;q!=NULL;r=q,q=q->next) { if(j==1) { p->next=head; head=p; break; } if(k==j) { p->next=q; r->next=p; break; } k++;
}
if(q==NULL&&j==k) { q=p; p->next=NULL; }
if(q==NULL&&j>k) printf(\你的添加的位置不合法\\n\ return head; }
void prin(struct student *head) {
struct student *p;
for(p=head;p!=NULL;p=p->next) { printf(\ printf(\ printf(\ printf(\ } }
main() {
struct student *head; head=fun();
head=wall(head); head=park(head); prin(head); }
实验10-1:
编写一个程序,读取磁盘上的一个C语言程序文件,要求加上注释后再存放到磁盘上,文件可以另外命名。
源代码:
#include
}
fscanf(p,\fclose(p);
if((p=fopen(\{ printf(\ exit(1); }
fputs(\fprintf(p,a); fputs(\fclose(p);
实验10-2:
编写一个程序,将文件old.txt从第10行起存放到new.txt中。
源代码:
#include
int i=0; char c;
FILE *p1,*p2;
if((p1=fopen(\ {
printf(\ exit(1); }
if((p2=fopen(\ {
printf(\ exit(1); }
while(!feof(p1)) {
if((c=fgetc(p1))=='\\n') i++; if(i>=9) {
fputc(c,p2); } }
system(\
fclose(p1); fclose(p2); }
实验10-3:
有一个整数文件,读取其中的数值,如果为奇数加1,如果为偶数减1,然后存放到新的文件中去。
源代码:
#include
int i=0; char c; FILE *p1;
if((p1=fopen(\ {
printf(\ exit(1); }
while(!feof(p1)) {
c=fgetc(p1); if((c-'0')%2==0) i--;
else if((c-'0')%2==1) i++; }
fclose(p1);
printf(\}
实验10-4:
二进制文件d.dat中包含若干个整数,用键盘输入一个整数,请在文件中找出该整数的下一个数并输出。若找不到则输出“Not Found!”。
源代码:
#include
int i=0;
int a[8]={3,4,6,8,7,1,2,9}; pf = fopen(\ if( pf==NULL ){
printf(\ } else{
fwrite((char *)a,sizeof(int),8,pf); fclose(pf); }
if((pf=fopen(\ printf(\ } else{ scanf(\ while(!feof(pf)){
fread((char*)&y,sizeof(int),1,pf); i++; if(y==x) break; }
fread((char*)&y,sizeof(int),1,pf); if(!feof(pf)){
printf(\在第%d个,下一个数字为%d\\n\ } else{
printf(\ }
fclose(pf); } }
正在阅读:
大学大一c语言程序设计实验室上机题全部代码答案(实验报告)12-03
基础工程习题答案(好多啊)03-18
于思礼生平事迹06-10
第五章 大数定律与中心极限定理05-19
第五节 可降阶的高阶微分方程08-06
2018-2019浅论中医药院校高等教育教学改革-实用word(3页)03-04
【渐进式】人教版 物理选修3-1第三章《磁场》基础练习205-07
湖南省衡阳市2022届高三下学期第三次联考文科综合政治试题 含答04-11
美国地理手抄报02-16
阆中市总体规划12-30
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 上机
- 程序设计
- 大一
- 实验室
- 答案
- 语言
- 实验
- 代码
- 全部
- 报告
- 大学
- 汉语拼音学习大全 - - - 完整版 - 图文
- Protel99SE介绍
- OFDM系统中的STO和CFO
- 数的意义和性质、小数加减法复习题
- 爆破员工作职责
- 班主任工作计划与总结 B
- 天津农学院 大型仪器设备开放共享基金立项的通知
- 4#楼、6#楼塔吊附墙件拆卸方案
- 西南科技大学2012模拟电子技术基础期末考试 - 试题及答案
- 收受贿赂后又借款给行贿人应如何定性
- 武汉市区域产业结构分析与研究 - 图文
- 高中物理专题阶梯训练- 气体的性质(含答案) - 图文
- 黄简书法讲座第37课笔记:永字八法6两种撇 - 图文
- 《临床流行病学》实习指导(供硕士研究生用,2011年版)
- 部编二年级语文上册1-8单元看拼音写词语
- 《当仁,不让于师》教案
- 如何打造高绩效团队试卷
- 2012 - 2013学年第二学期期中初一政治试题
- 江苏省苏北四市(徐州、淮安、连云港、宿迁)2016届高三上学期期中质量抽测生物试题(含解析)
- 重庆中集物流有限公司简介2011(定) -