建材秒知道
登录
建材号 > 设计 > 正文

C语言程序设计实验报告怎么写

高高的鞋子
愤怒的玫瑰
2022-12-31 05:13:04

C语言程序设计实验报告怎么写?

最佳答案
等待的西装
辛勤的唇膏
2025-08-22 01:12:48

通过本试验初步培养计算机逻辑解题能力。熟练掌握赋值语句和if语句的应用;掌握switch多路分支语句和if嵌套语句的使用

实验原理和设计方案:

1、函数头的选则,while循环语句,switch(case)语句,条件表达式,if  else条件语句,自增运算符,设置复杂变量,输出随机操作数。

2、变量要有分数变量和等级变量,要有选择算法题数的变量和计算正确与否的变量,要有随机输出的两个操作数变量和自己按运算符号输入结果的变量,最后还有判断是否要进行的变量字符。中间结果有选择运算符的switch()和分数等级的switch()和错题对题的自增和选择运算符计算的自增。

3、问题的分析方法:先考虑设置整形变量和字符变量,考虑到要不断循环计算,选择用while语句来循环。在循环体中,将前面的输出提示运算符,和自行选择运算符、答案及输出随机操作数完成。再用switch语句对选择的运算符进行判断,并用变量进行自增运算,计算出错题于对题个数和选择了那种运算符号。在循环体最后用if else语句来判断是否继续执行还是跳出循环。最后根据自增计算的结果和公式进行分数计算,并用switch语句来是想等级的制定。

最新回答
热情的盼望
傲娇的墨镜
2025-08-22 01:12:48

#include<stdio.h>

void exchange(int *px,int *py)

int main(void){

    int x,y

    scanf("%d%d",&x,&y)

    exchange(&x,&y)

    printf("x=%d\ny=%d",x,y)

}

void exchange(int *px,int *py){

    int temp

    temp=*px

    *px=*py

    *py=temp

}

高挑的小兔子
激昂的鞋子
2025-08-22 01:12:48
#include<stdio.h>

void main()

{ float f=555.5678,ff

int a[10]={ 0,1,2,3,4,5,6,7,8,9 },b[10],i

FILE *fp

if ( fp=fopen("TEXT.dat","wb+") )

{ fwrite(&f,sizeof(float),1,fp)

for ( i=0i<10i++ ) fwrite(&a[i],sizeof(int),1,fp)

fclose(fp)

} else printf("无法建立文件。\n")goto ERROREND

if ( fp=fopen("TEXT.dat","rb") )

{ fread(&ff,sizeof(float),1,fp)

for ( i=0i<10i++ ) fread(&b[i],sizeof(int),1,fp)

fclose(fp)

} else printf("无法打开文件。\n")goto ERROREND

printf("%.2f ",ff)for ( i=0i<10i++ ) printf("%d ",b[i])printf("\n")

ERROREND:

}

俏皮的缘分
愤怒的草丛
2025-08-22 01:12:48
又是汇编的。。。

计算机是通过执行指令(由操作码字段和操作数字段组成)序列来解决问题的,因而每种计算机都有一组指令集(指令系统)供给用户使用,寻址就是其中之一(如为了找到操作数)。

寻址方式:1)与数据有关的寻址方式 :

a 立即寻址方式:操作数(立即数)直接存放在指令中,紧跟在操作码,作为指令的一部分,这中寻址方式用来表示常数,它经常用于给寄存器赋初值,且只能用于源操作数字段,不能用于目的操作字段,且源操作数长度与目的操作数长度一致。

b 寄存器寻址方式:操作数在寄存器中,指令用来指定寄存器号,不需要访问存储器来取得操作数,速度较快。

c 直接寻址方式:操作数的有效地址(在8086里把操作数的偏移地址叫做有效地址)只包含位移量一种成分,其值就存放在代码段中指令的操作码之后,位移量的指即操作数的有效地址。适用于处理单个变量。

d 寄存器间接寻址方式:操作数的有效地址只包含基址寄存器内容或变址寄存器内容一种成分,因此有效地址就在某个寄存器中,而操作数就在存储器中。适用与表格处理,执行完一条指令后,只需修改寄存器的内容就可以取出表格下一项。

e 寄存器相对寻址方式:操作数的有效地址即为基址或变址寄存器和指令中指定的位移量之和。

f 基址变址寻址方式:操作数的有效地址是一个基址寄存器和一个变址寄存器之和。

g 相对基址变址寻址方式 h 比例变址寻址方式 等等。

2)与转移地址有关的寻址方式。

a 段内直接寻址:转向的有效地址是当前IP寄存器的内容和指令中指定的8位或16位位移量之和。

b 段内间接寻址:转向有效地址是一个寄存器或是一个存储单元的内容 。(常用)

c 段间直接寻址 d 段间间接寻址

此外 还介绍一些寄存器 如通用寄存器 AX BX CX DX 也可叫做数据寄存器,可以以字或字节的形式访问, 另外 SP BP SI DI 四个16位寄存器可以像数据寄存器一样在运算时存放操作数,但他们只能以字(16位)为单位使用,此外它们更经常的用途是在存储器寻址时,提供偏移地址,再者有四个专门提供段地址的寄存器,称为段寄存器 有代码段CS 数据段DS 堆栈段SS 附加段ES。

任性的斑马
俊逸的苗条
2025-08-22 01:12:48
这个题目很简单!

你可以把我这个程序的输出部分修改一下(不修改也可以)

程序如下:

#include <stdio.h>

#define STU_NUM 10//学生数目

#define SCORE_NUM 3//课程数目

typedef struct

{

char num[20]

char name[20]

float score[SCORE_NUM]

float total//总分

float average//平均分

} Student

Student stu[STU_NUM]

//输入学生信息

void input()

{

int i,j

printf("请输入%d个学生的信息:\n",STU_NUM)

for(i=0i<STU_NUMi++)

{

printf("学号:")

scanf("%s",stu[i].num)

printf("姓名:")

scanf("%s",stu[i].name)

for(j=0j<SCORE_NUMj++)

{

printf("科目%d的成绩:",j+1)

scanf("%f",&stu[i].score[j])

}

}

}

//输出学生信息

void output(void)

{

int i,j

for(i=0i<STU_NUMi++)

{

printf("学生的信息如下:\n")

printf("学号:%s\n",stu[i].num)

printf("姓名:%s\n",stu[i].name)

for(j=0j<SCORE_NUMj++)

{

printf("科目%d的成绩:%f\n",j+1,stu[i].score[j])

}

printf("总分:%f\n",stu[i].total)

printf("平均分:%f\n",stu[i].average)

}

}

//计算总分和平均分

void process()

{

int i,j

for(i=0i<STU_NUMi++)

{

stu[i].total=0

for(j=0j<SCORE_NUMj++)

{

stu[i].total+=stu[i].score[j]

}

stu[i].average=stu[i].total/SCORE_NUM

}

}

//按总分进行排序(冒泡法)

void sort()

{

Student tStu

int i,j

for(i=0i<STU_NUMi++)

{

for(j=STU_NUM-1j>ij--)

{

if(stu[j].total>stu[j-1].total)

{

tStu=stu[j]

stu[j]=stu[i]

stu[i]=tStu

}

}

}

}

main()

{

input()

process()

sort()

output()

}

开心的毛衣
热心的仙人掌
2025-08-22 01:12:48
一、

scanf("%lf", x) 改为scanf("%lf", &x)

y = 1 / x 没加分号

二、if( a + b >c || b + c >a || a + c >b)改成if( !(a + b >c || b + c >a || a + c >b) )

闪闪的小白菜
火星上的果汁
2025-08-22 01:12:48
//main.c文件

#include<stdio.h>

#include<stdlib.h>

#define BufLen 20

#define KeChengCount 3

typedef struct tagStuInfor

{

char xh[BufLen]//学号

char xm[BufLen]//姓名

char kchm[KeChengCount][BufLen]//课程名

float pshchj[KeChengCount]//平时成绩

float kshchj[KeChengCount]//考试成绩

float zpchj[KeChengCount]//总评成绩

float zf

}StudentInformation

typedef struct tagBookInfor

{

char shm[BufLen]//书名

float dj//单价

}BookInformation

void shurustu()

void zongfen()

void shuchumaxmin()

void sortbook()

void freeall()

//学生数,书数

int xshsh,shsh

StudentInformation *ptstu=NULL

BookInformation *ptbook=NULL

int main()

{

char in[]="data.txt",out[]="T_data.txt"

int i

float chjs[6],zf

FILE *fin,*fout

printf("250这个数字太不好了,能换成350吗?\n\n")

shurustu()

zongfen()

shuchumaxmin()

printf("请输入书数:")

scanf("%d",&shsh)

ptbook=(BookInformation*)calloc(shsh,sizeof(BookInformation))

for(i=0i<shshi++)

{

printf("请输入第%d本书的书名:",i+1)

scanf("%s",ptbook[i].shm)

printf("请输入第%d本书的单价:",i+1)

scanf("%f",&ptbook[i].dj)

}

printf("\n")

sortbook()

printf("按书的单价升序排序后的结果:\n书名\t单价\n")

for(i=0i<shshi++)

{

printf("%s\t%.2f\n",ptbook[i].shm,ptbook[i].dj)

}

fin=fopen(in,"r")

fout=fopen(out,"w")

while(!feof(fin))

{

for(i=0i<6i++)

{

fscanf(fin,"%f",&chjs[i])

}

zf=0.2*(chjs[0]+chjs[1]+chjs[2])+0.8*(chjs[3]+chjs[4]+chjs[5])

printf("%.2f\n",zf)

fprintf(fout,"%.2f\r\n",zf)

}

printf("\n")

fclose(fin)

fclose(fout)

freeall()

system("PAUSE")

return EXIT_SUCCESS

}

void shurustu()

{

int i

printf("请输入学生的个数:")

scanf("%d",&xshsh)

ptstu=(StudentInformation*)calloc(xshsh,sizeof(StudentInformation))

for(i=0i<xshshi++)

{

strcpy(ptstu[i].kchm[0],"C语言")

strcpy(ptstu[i].kchm[1],"高等数学")

strcpy(ptstu[i].kchm[2],"英语")

printf("请输入第%d个学生的学号:",i+1)

scanf("%s",ptstu[i].xh)

printf("请输入第%d个学生的姓名:",i+1)

scanf("%s",ptstu[i].xm)

printf("请输入第%d个学生的C语言课程的平时成绩和考试成绩:",i+1)

scanf("%f %f",&ptstu[i].pshchj[0],&ptstu[i].kshchj[0])

printf("请输入第%d个学生的高等数学课程的平时成绩和考试成绩:",i+1)

scanf("%f %f",&ptstu[i].pshchj[1],&ptstu[i].kshchj[1])

printf("请输入第%d个学生的英语课程的平时成绩和考试成绩:",i+1)

scanf("%f %f",&ptstu[i].pshchj[2],&ptstu[i].kshchj[2])

}

printf("\n")

}

void zongfen()

{

int i

for(i=0i<xshshi++)

{

ptstu[i].zpchj[0]=0.2*ptstu[i].pshchj[0]+0.8*ptstu[i].kshchj[0]

ptstu[i].zpchj[1]=0.2*ptstu[i].pshchj[1]+0.8*ptstu[i].kshchj[1]

ptstu[i].zpchj[2]=0.2*ptstu[i].pshchj[2]+0.8*ptstu[i].kshchj[2]

ptstu[i].zf=ptstu[i].zpchj[0]+ptstu[i].zpchj[1]+ptstu[i].zpchj[2]

printf("%s的%s,%s,%s的总评成绩是:",ptstu[i].xm,ptstu[i].kchm[0],ptstu[i].kchm[1],ptstu[i].kchm[2])

printf("%.2f,%.2f,%.2f\n",ptstu[i].zpchj[0],ptstu[i].zpchj[1],ptstu[i].zpchj[2])

printf("%s的总分是:%.2f\n",ptstu[i].xm,ptstu[i].zf)

}

printf("\n")

}

void shuchumaxmin()

{

int i,min,max

min=max=0

for(i=1i<xshshi++)

{

if(ptstu[i].zf<ptstu[min].zf)

{

min=i

}

if(ptstu[i].zf>ptstu[max].zf)

{

max=i

}

}

printf("总分最高的学生的信息:\n学号\t姓名\t")

printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2])

printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[max].kchm[0],ptstu[max].kchm[1],ptstu[max].kchm[2])

printf("%s\t%s\t",ptstu[max].xh,ptstu[max].xm)

printf("%.2f\t%.2f\t%.2f\t",ptstu[max].pshchj[0],ptstu[max].pshchj[1],ptstu[max].pshchj[2])

printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[max].kshchj[0],ptstu[max].kshchj[1],ptstu[max].kshchj[2],ptstu[max].zf)

printf("总分最低的学生的信息:\n学号\t姓名\t")

printf("%s(平时)\t%s(平时)\t%s(平时)",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2])

printf("\t%s(考试)\t%s(考试)\t%s(考试)\t总分\n",ptstu[min].kchm[0],ptstu[min].kchm[1],ptstu[min].kchm[2])

printf("%s\t%s\t",ptstu[min].xh,ptstu[min].xm)

printf("%.2f\t%.2f\t%.2f\t",ptstu[min].pshchj[0],ptstu[min].pshchj[1],ptstu[min].pshchj[2])

printf("%.2f\t%.2f\t%.2f\t%.2f\n\n",ptstu[min].kshchj[0],ptstu[min].kshchj[1],ptstu[min].kshchj[2],ptstu[min].zf)

}

void sortbook()

{

int i,j,min

BookInformation t

for(i=0i<shsh-1i++)

{

min=i

for(j=i+1j<shshj++)

{

if(ptbook[j].dj<ptbook[min].dj)

{

min=j

}

}

t=ptbook[i]

ptbook[i]=ptbook[min]

ptbook[min]=t

}

}

void freeall()

{

if(NULL!=ptstu)

{

free(ptstu)

}

if(NULL!=ptbook)

{

free(ptbook)

}

}

//data.txt文件

50 65 70 88 97 80

66 87 95 46 88 97

77 82 65 58 91 58

78 87 91 48 66 70

忧郁的奇异果
舒服的冥王星
2025-08-22 01:12:48
有。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发,C语言能以简易的方式编译、处理低级存储器,c语言程序设计有实验箱。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

谦让的心锁
糊涂的故事
2025-08-22 01:12:48
#include <stdio.h>

#include <string.h>

#include <ctype.h>

#define MAXSIZE 36

struct Word {

char word[MAXSIZE]

unsigned size

}words[10000]

int n = 0

void Sort() {

// 没有时间写了

}

void Additive(char word[]) {

int i,flag = 1

for(i = 0 i < n && flag ++i) {

if(strcmp(words[i].word,word) == 0) {

++words[i].size

flag = 0

}

}

if(flag) {

strcpy(words[n].word,word)

words[n].size = 1

++n

}

}

int main() {

int i,ch

char word[MAXSIZE]

FILE *fin = fopen("case1.in","rt")

if(fin == NULL) {

printf("无法打开数据文件!\n")

return 1

}

i = 0

while((ch = fgetc(fin)) != EOF) {

if(isalpha(ch)) word[i++] = tolower(ch)

else if(i) {

word[i] = '\0'

i = 0

Additive(word)

}

}

if(i) {

word[i] = '\0'

Additive(word)

}

fclose(fin)

Sort()

return 0

}

含蓄的毛衣
慈祥的心锁
2025-08-22 01:12:48
第一章 程序设计的基本概念

第一节 C语言的发展历史与特点

第二节 程序与程序设计

第三节 算法与算法的描述

第四节 C语言的上机操作

思考题与习题

第二章 C语言程序设计基础

第一节 C语言的程序结构

第二节 数据类型

第三节 运算符与表达式

思考题与习题

第三章 C程序控制结构

第一节 C程序的三种基本控制结构

第二节 顺序结构

第三节 选择结构

第四节 循环结构

思考题与习题

第四章 数组

第一节 数组与数组元素的概念

第二节 一维数组

第三节 二维数组及多维数组

第四节 字符串与字符数组

思考题与习题

第五章 指针

第一节 指针与指针变量的概念

第二节 指针变量的定义和引用

第三节 指针变量与数组

思考题与习题

第六章 函数

第一节 函数的定义

第二节 函数的嵌套调用

第三节 数组作为函数参数

第四节 指针与函数

第五节 变量的使用范围与存储类别

第六节 不同文件中的函数使用

思考题与习题

第七章 编译预处理

第一节 宏定义

第二节 文件包含

第三节 条件编译

思考题与题

第八章 结构体与共用体

第一节 结构体基础

第二节 结构体数组

第三节 结构体指针

第四节 链表

第五节 位段

第六节 共用体

第七节 枚举类型与自定义类型

思考题与习题

第九章 文件

第一节 文件概述

第二节 文件的打开与关闭

第三节 文件的读/写

第四节 文件的定位

思考题与习题

第十章 程序设计方法

第一节 程序设计的基本概念

第二节 结构化程序设计方法

第三节 程序效率

第四节 程序设计风格

思考题与习题

附录

附录A C语言实验

附录B 标准ABSII码表

附录C C语言中的关键字

附录D 运算符的优先级与结合性