文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计_职工信息管理系统_结构体数组实现程序源代码

C语言课程设计_职工信息管理系统_结构体数组实现程序源代码

C语言课程设计_职工信息管理系统_结构体数组实现程序源代码
C语言课程设计_职工信息管理系统_结构体数组实现程序源代码

//C语言课程设计职工信息管理系统—结构体数组实现

#include

#include

#include

struct employee

{

char num[10];

char name[15];

char sex[5];

char bm[20];

char zc[20];

int gz;

};

int read_file(struct employee em[]);

void menu();

void write_file(struct employee em[]);

void add();

void select(); //查看职工所有信息

void zc_query(); //按职称查询

void num_del(); //按工号删除

void tongji(); //统计

void sort(); //排序

void num_modify(); //按工号修改职工信息

void save(); //保存信息

void disp(); //显示职工信息

void fh(); //返回主菜单

struct employee em[300]; //这个数组用来保存所有的职工信息和文件里面

的一致

int Number=0; //记录总的职工人数也就是数组/文件里面的职工人数

void menu()

{

printf("\t*******************************************************

****************\n");

printf("\t* *\n");

printf("\t* 职工信息管理系统_结构体数组实现

*\n");

printf("\t* *\n");

printf("\t* [1] 增加职工信息 [2] 查

看职工信息 *\n");

printf("\t* [3] 查找职工信息 [4] 删

除职工信息 *\n");

printf("\t* [5] 统计 [6] 职

工工资排列 *\n");

printf("\t* [7] 修改职工信息 [8] 保

存职工信息 *\n");

printf("\t* [9] 显示职工信息 [0] 退

出系统 *\n");

printf("\t* *\n");

printf("\t*******************************************************

****************\n");

}

void main()

{

int choose=0;

FILE *fp=NULL;

char yesorno;

if((fp=fopen("employee1.txt","rb+"))==NULL)

{

printf("\n=========>提示:文件不存在,是否要创建一个?(y/n)\n");

scanf("%c",&yesorno);

if(yesorno=='y'||yesorno=='Y')

{

//这里仅为了建立文件

fp=fopen("employee1.txt","wb+");

fclose(fp); //关闭fp所指的文件,释放文件缓冲区

}

else

exit(0);

}

else

{

Number=read_file(em); //要是文件已经有数据将数据初始化到数组

}

system("cls");

while(1)

{

menu();

printf("\t\t====>请选择:");

scanf("%d",&choose);

system("cls");

switch(choose)

{

case 0:

exit(0); //退出

break;

case 1:

add();

fh();//增加职工信息 break;

case 2:

select();

fh();//查看职工信息 break;

case 3:

zc_query();

fh();// 查找

break;

case 4:

num_del();

fh();//删除

break;

case 5:

tongji();

fh();//统计

break;

case 6:

sort();

fh();//排序

break;

case 7:

num_modify();

fh();//修改后返回 break;

case 8:

save();

fh();//保存

break;

case 9:

disp();

fh();

break;//显示

default:

break;

}

fflush(stdin);

getchar();

system("cls");

}

}

void save()

{

printf("\t=====程序在运行时已自动保存.....\n");

}

void fh()

{

printf("\t===>按Enter键返回主菜单\n");

}

void num_modify() //修改职工信息

{

FILE *fp=NULL;

char gh[60];

int i=0;

int changeIndex=0; //changeIndex 改变标记

int index=0;

printf("请输入要修改的职工工号:");

scanf("%s",gh);

for (i=0;i

{

if (strcmp(gh,em[i].num)==0) //比较输入工号和数组中已有工号

{

changeIndex=i; //保存要修改的人的下标

break;

}

}

printf("\t工号\t姓名\t性别\t部门\t职称\t工资\n");

printf("\t%s\t%s\t%s\t%s\t%s\t%d\n\n",em[changeIndex].num,em[chan geIndex].name,em[changeIndex].sex,em[changeIndex].bm,em[changeIndex]. zc,em[changeIndex].gz);

printf("请重新输入该职工信息");

printf("工号:");

scanf("%s",em[changeIndex].num);

printf("姓名:");

scanf("%s",em[changeIndex].name);

printf("性别:");

scanf("%s",em[changeIndex].sex);

printf("部门:");

scanf("%d",em[changeIndex].bm);

printf("职称:");

scanf("%s",em[changeIndex].zc);

printf("工资:");

scanf("%d",&em[changeIndex].gz);

//信息修改后重新更新文件里面的数据以保持数据一致性

fp=fopen("employee1.txt","wb+");

for (i=0;i

{

fwrite(&em[i],sizeof(struct employee),1,fp); //把ptr所指向n*size个字节输入到fp所指向的文件中

}

fclose(fp);

printf("\t=======>修改成功\n");

}

void disp() //输出所有职工信息

{

int i=0;

for (i=0;i

{

printf("\t%s\t%s\t%s\t%s\t%s\t%d\n\n",em[i].num,em[i].name,em[i]. sex,em[i].bm,em[i].zc,em[i].gz);

}

}

void sort()//排序

{

struct employee t;

int wantNUmber=0;

int i=0;

int j=0;

int k=0;

for(i=0;i

{k=i;

for(j=i+1;j

{

if(em[j].gz>em[k].gz)

k=j;

}

if(k!=i)

{

t=em[i];

em[i]=em[k];

em[k]=t;

}

}

printf("你想输出前几名职工的信息:");

scanf("%d",&wantNUmber);

if (wantNUmber>Number)

{

wantNUmber=Number;

}

printf("\t工号\t姓名\t性别\t部门\t职称\t工资\n");

for(i=0;i

{

printf("\t%s\t%s\t%s\t%s\t%s\t%d\n\n",em[i].num,em[i].name,em[i].sex, em[i].bm,em[i].zc,em[i].gz);

}

}

void tongji()//统计

{

int i,m,k,max,min;

double sum=0.0;

for(i=0;i

{

sum=sum+em[i].gz;

}

printf("全体职工的总工资为:%f\n",sum);

printf("平均工资为:%f\n",sum/Number);

i=0;m=0;max=0;

max=em[m].gz;

for(i=1;i

{

if (em[i].gz>max)

m=i;

max=em[m].gz;

}

printf("最高工资为:%d\n",max);

printf("\t%s\t%s\t%s\t%s\t%s\t%d\n\n",em[m].num,em[m].name,em[m]. sex,em[m].bm,em[m].zc,em[m].gz);

i=0;k=0;min=0;

min=em[0].gz;

for(i=1;i

{

if (em[i].gz

k=i;

min=em[k].gz;

}

printf("最低工资:%d\n",min);

printf("\t%s\t%s\t%s\t%s\t%s\t%d\n\n",em[k].num,em[k].name,em[k]. sex,em[k].bm,em[k].zc,em[k].gz);

}

void num_del()//按工号删除

{

FILE *fp=NULL;

char gh[60];

int i=0;

int j=0;

printf("请输入要删除的职工工号:");

scanf("%d",gh);

for(i=0;i

{

if (strcmp(gh,em[i].num)==0) //如果查找到就删除

{

for (j=i;j

{

em[j]=em[j+1];

}

Number--;

}

}

//将剩余数据写入文件重新一写的方式打开文件把以前的数据擦除了fp=fopen("employee1.dat","wb");

for (i=0;i

{

fwrite(&em[i],sizeof(struct employee),1,fp);

}

fclose(fp);

printf("删除成功;\n");

}

void zc_query()//按职称查找

{

char zc[20];

int i=0;

printf("请输入要查找职工职称:");

scanf("%s",zc);

system("cls");

printf("\t工号\t姓名\t性别\t部门\t职称\t工资\n");

for (i=0;i

{

if (strcmp(zc,em[i].zc)==0)

{

printf("\t%s\t%s\t%s\t%s\t%s\t%d\n\n",em[i].num,em[i].name,em[i]. sex,em[i].bm,em[i].zc,em[i].gz);

}

}

}

void select()//查看职工

int i=0;

printf("以下是全部职工信息\n");

printf("\t工号\t姓名\t性别\t部门\t职称\t工资\n");

for(i=0;i

{

printf("\t%s\t%s\t%s\t%s\t%s\t%d\n\n",em[i].num,em[i].name,em[i]. sex,em[i].bm,em[i].zc,em[i].gz);

}

}

void add()//增加职工

{

int numberTemp=0;

int i=0;

struct employee temp; //临时保存信息

printf("请输入要增加职工信息的个数:");

scanf("%d",&numberTemp);

for(i=0;i

{

printf("输入第%d个职工信息\n",i+1);

printf("工号:");

scanf("%s",temp.num);

printf("姓名:");

scanf("%s",https://www.wendangku.net/doc/1a13414953.html,);

printf("性别:");

scanf("%s",temp.sex);

printf("部门:");

scanf("%s",temp.bm);

printf("职称:");

scanf("%s",temp.zc);

printf("工资:");

scanf("%d",&temp.gz);

em[Number++]=temp; //将刚添加的写入到数组

write_file(&temp); //将刚添加的写入到文件

}

printf("添加成功\n");

}

void write_file(struct employee *em)

{

FILE *fp=NULL;

fp=fopen("employee1.txt","rb+");

fwrite(em,sizeof(struct employee),1,fp);

fclose(fp);

}

int read_file(struct employee em[])

{

FILE *fp=NULL;

int i=0;

fp=fopen("employee1.txt","rb");

while(fread(&em[i],sizeof(struct employee),1,fp)) i++;

fclose(fp);

return i;

}

《数据结构》课程设计任务书

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

智慧树知道网课《C语言程序设计(青岛职业技术学院)》满分章节测试答案

第一章测试 提示:选择题选项顺序为随机排列,若要核对答案,请以选项内容为准1 【单选题】 (20分) C语言是一种( ) A. 低级语言 B. 高级语言 C. 汇编语言 D. 机器语言 2 【单选题】 (20分) 下列各项中,不是C语言的特点是()。 A. 数据类型丰富,可移植性好 B. 语言简洁、紧凑,使用方便 C. 有较强的网络操作功能 D. 能实现汇编语言的大部分功能

3 【单选题】 (20分) 下列叙述的是()。 A. C程序中的每条命令都用一个分号作为结束符 B. C程序中的每条语句都用一个分号作为结束符 C. C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 D. C程序中的变量必须先定义,后使用 4 【单选题】 (20分) 一个C程序的执行是从()。 A. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 B. 本程序文件的第一个函数开始,到本程序main函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束 D. 本程序的main函数开始,到main函数结束 5 【单选题】 (20分)

以下叙述不正确的是()。 A. 在C程序中,注释说明只能位于一条语句的后面 B. 一个C源程序必须包含一个main函数 C. C程序的基本组成单位是函数 D. 一个C源程序可由一个或多个函数组成 第二章测试 1 【单选题】 (10分) 已知定义整形变量a,b,c的值分别是2、3、4,运算表达式a*=16+(b++) - (++c)以后,a值为( ) A. 28 B. 30 C. 29 D. 31 2 【单选题】 (10分)

石油大学(华东)C语言2018年在线考试

设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[1 0]中,下面语句中能把“China”连接到“Beijing”之后的为() ?A) strcpy(str1,str2); ? ?B) strcpy(str1,“China”); ? ?C) strcat(str1,“China”) ? ?D) strcat(“Beijing”,str2); ? 2(2.0分) 下列变量的定义及赋值正确的是() ?A) int i=0;j; ? ?B) char c=”A”; ? ?C) double x,y,z;x=y=z=100; ? ?D) float a=b=100; ?

3(2.0分) 设有定义语句:char str[][20]={"Hello","Beijing"},*p=str; 则printf ("%d\n",strlen(p+20)); 输出结果是() ?A) ? ?B) 5 ? ?C) 7 ? ?D) 20 ? 4(2.0分) 设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y, z的值分别是() ?A) 1,1,1 ? ?B) 1,2,0 ? ?C) 0,1,1 ?

0,2,0 ? 5(2.0分) 下列程序段的输出结果是()x=9; while(x>7) {printf(“*”);x--;} ?A) **** ? ?B) *** ? ?C) ** ? ?D) * ? 6(2.0分) 设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是() ?A) 5 11 ? ?B) 1 9 ? ?C) 5 9 ?

2020年智慧树知道网课《C语言程序设计(山东联盟-山东英才学院)》课后章节测试满分答案

第一章测试 1 【单选题】(20分) C语言程序扩展名为.exe,它属于【】 A. 可执行文件 B. 库文件 C. 源程序文件 D. 目标文件 2 【单选题】(20分) 在绘制程序流程图时,表示“输入输出框”的符号是【】 A. B. C. D.

3 【单选题】(20分) 在绘制程序流程图时,下面哪个表示“选择结构”【】 A. B. C. D.

4 【单选题】(20分) 在绘制程序N-S图时,下面哪个表示“直到型循环结构”【】 A. B. C. D. 5 【单选题】(20分) 下列关于C语言特点的描述,不正确的是【】 A. C语言既可用来编写应用软件,又可用来编写系统软件

B. C语言的可移植性差 C. C语言兼有高级语言和低级语言的双重特点,执行效率高 D. C语言是一种结构化程序设计语言 第二章测试 1 【单选题】(20分) 十六进制数0X11对应的十进制数是【】 A. 17 B. 11 C. 其它答案都不正确 D. 2 2 【单选题】(20分) 下列C语言书写形式中属于合法的十进制整型常量的是【】 A.

045L B. 0X7F4 C. 82u D. 0x81p 3 【单选题】(20分) 字符'3'的ASCII码值是【】 A. 其它答案都不正确 B. 3 C. 51 D. 48 4 【单选题】(20分) 下列合法的C语言标识符是【】 A. float

B. a&b C. _xyz D. 2x 5 【单选题】(20分) 下面哪个是合法的C语言字符型变量定义【】 A. char_a1,_a2; B. CHARa1,a2,a3; C. Chara; D. floata1,a2; 第三章测试 1 【单选题】(20分) 若有定义floata;,执行表达式a=1/2后,a的值是【】 A.

C语言_中国石油大学(华东)c语言上机题

Hello world. 让我们用C语言向世界问好。 最早的程序基本是这个样子的: 程序一: #include <> void main() { printf("Hello world.\n"); } 程序二: #include <> int main() { printf("Hello world.\n"); return 0; } 上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。 输入:无 输出:Hello world. #include<> int main() { printf("Hello world.\n"); } Welcome to Beijing. 让我们来练习如何显示多行文字。 输入:无 输出:就是下面的那段文字。 #include<> void main() {printf("Welcome\n"); printf("to\n"); printf("Beijing.\n"); } 练习最简单的printf和scanf printf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。 输入:整型变量x的值。 输出:输出整型变量x对应的十进制、八进制和十六进制形式。 认真观察-1的八进制和十六进制输出,请想想是为什么。 #include <> int main() {int x; scanf("%d",&x); printf("x=%d,",x); printf("x=%o,",x); printf("x=%x\n",x); return 0; } 练习两个整数之间的运算 背景:基本练习。 输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444 输出:分别输出进行+、-、*、/、*之后的运行结果。#include<> int main() {int x,y; scanf("%d%d",&x,&y); printf("%d+%d=%d\n",x,y,x+y); printf("%d-%d=%d\n",x,y,x-y); printf("%d*%d=%d\n",x,y,x*y); printf("%d/%d=%d\n",x,y,x/y); printf("%d%%%d=%d\n",x,y,x%y); return 0; } 学习打印你的第一个图形 背景:我们已经学习了printf函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4的正方形。 程序如下: #include <> int main() { printf("****\n"); printf("****\n"); printf("****\n"); printf("****\n"); return 0; } 要求:按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。 输入:无。 输出:指定图形。 #include <> int main() { printf(" *\n"); printf(" ***\n"); printf(" *****\n"); printf("*******\n"); return 0; } 整型数的表示范围 编写一个循环程序,输入N 值,输出N 的阶乘。关于循环程序怎么编写,可以参考教材第3章P66页的例题和第5章P82的例题的内容。注意整型数的表示范围,如果当输入的N 比较大时,例如N 等于20 时,输出怎么是负数了?自己想明白吧!#include<> void main() {int N,i; int sum=1;

C语言程序设计(第二版)习题参考答案

C语言程序设计习题参考答案 习题1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F 2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

C语言程序设计试题与答案-4

C语言程序设计试题与答案-4

《C语言程序设计》试题(闭卷) 一、单项选择题:(每题 2 分, 共 30 分) 1. C 语言规定:在一个源程序中, main函数的位置_____________。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下列说法中错误的是 _____________。 A. 主函数可以分为两个部分: 函数头和函数体 B. 主函数可以调用任何非主函 数的其他函数 C. 任何非主函数可以调用其他 任何非主函数 D. 程序可以从任何非主函数开 始执行 3. 用 C 语言编写的源文件经过编

的值是_____________。 A. 1,1 B. 0,1 C. 1,0 D. 0,0 8. sizeof (char)的结果值是 _____________。 A. 4 B. 2 C. 1 D.出错 9. 设 a 为整型变量,不能正确表达 数学关系:1010 && a<15 D. !(a<=10) && !(a>=15) 10. 要为字符型变量 a赋初值,下列 语句中哪一个是正确的 _____________。 A. char a="3"; B. char a=’3’; C. char a=%; D. char a=*; 11. 设有定义:char s[12] = "STRING" ; 则 printf( "%d\n",strlen(s)); 的 输出是_____________。

智慧树知到程序设计基础(C语言)测试第四章单元测试参考答案

智慧树知到程序设计基础(C语言)测试第四章单元测试参考答案 ?总题数: 10 1 【单选题】 (10分) 有下列程序,已知字母A的ASCII码为65,程序运行后的输出结果是()。 #include int main() { char c1,c2; c1=’A’+’8’-’4’; c2=’A’+’8’-’5’; printf("%c,%d\n",c1,c2); return 0; } A.E,68 B.E,D C.D,69 D.输出无定值 正确 本题总得分10分 2 【单选题】 (10分) 有下列程序,程序运行后的输出结果是()。 #include int main() { int a=14,b=12; a=a+b; b=a-b; a=a-b; printf("a=%d,b=%d",a,b); return 0;

} A.a=14,b=12 B.a=12,b=14 C.a=26,b=26 D.a=14,b=14 正确 本题总得分10分 3 【单选题】 (10分) 若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。 A.scanf("%d%d%d",a,b,c); B.read(a,b,c) C.scanf("%D%D%D",&a,&b,&c); D.scanf("%d%d%d",&a,&b,&c); 正确 本题总得分10分 4 【判断题】 (10分) 编写程序,输入3个整数a、b、c,输出时:a的值是b,b的值是c,c的值是a。下面程序可以正确实现题目要求: #include int main() { int a,b,c,t scanf("%d%d%d",&a,&b,&c); t=a;a=b;b=c;c=t; // 顺序交换a、b、c printf("a=%d,b=%d,c=%d",a,b,c); return 0; }

2019知到C语言程序设计单元测试答案最新完整版

C语言是一种( ?) 下列各项中,不是C语言的特点是()。 下列叙述错误的是( ?)。 一个C程序的执行是从( ?)。 以下叙述不正确的是( ?)。 可在妙状元.com查看完整版 已知定义整形变量a,b,c的值分别是2、3、4,运算表达式a*=16+(b++) - (++c)以后,a值为( ?) 在C语言中,要求参加运算的数必须是整数的运算符是( ?)。 合法的c标识符是( ?)。 可在妙状元.com查看完整版 执行下列程序后,显示的结果是( ) ? ?? 执行下列程序中的输出语句后,x的值是()。 判断:表达式1/4+2.75的值是3。 下列转义字符不正确的是()。 以下选项中不是C语句的是( ?) 以下语句的输出结果是( ? ) ?printf("%d ",strlen(" "65xff ")); 若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是( ? ) 调用getchar和putchar函数时,必须包含的头文件是( ? )。 使用scanf("a=%d,b=%d",&a,&b)为变量a,b赋值。要使a,b均为50,正确的输入是( ? ) “putchar(70); ”这一C语句输出的结果为() 若要求在if后的圆括号中表示a不等于0的关系,能正确表示这一关系的表达式是()。

以下程序段,运行后的输出结果是() 设a=1,b=2,c=3,d=4,则表达式a

C语言程序设计(郑莉)课后习题答案

C语言程序设计(郑莉)课后习题答案

C++语言程序设计(清华大学郑莉)课后习题答案 第一章概述 1-1 简述计算机程序设计语言的发展历程。 解: 迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。 1-2 面向对象的编程语言有哪些特点? 解: 面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。 1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点? 解: 结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。 由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。 1-4 什么是对象?什么是面向对象方法?这种方法有哪些特点? 解: 从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。 面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。 面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。 1-5 什么叫做封装? 解: 封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 1-6 面向对象的软件工程包括哪些主要内容?

智慧树知到《计算机程序设计C语言》2019章节测试答案

智慧树知到《计算机程序设计C语言》2019章节测试答案 第一章 1、【单选题】 (1分) 一个C程序可以有(1)个主函数。 2、【判断题】 (1分) C语言是函数式的语言。(对) 3、【判断题】 (1分) C语言是高级语言。(对) 4、【判断题】 (1分) Visual C++不支持C语言。(错) 5、【判断题】 (1分) C语言是编译式的语言。(对) 第二章 1、【单选题】 (1分) double x;scanf("%lf",&x);不可以赋值给x变量的常量是("abc"). 2、【单选题】 (1分) 下列程序段的输出结果为().float x=213.82631; printf("%3d",(int)x); (213) 3、【单选题】 (1分) 下列程序的输出结果是(97 b). main() {char c1=97,c2=98;

printf("%d %c",c1,c2); } 4、【单选题】 (1分) 以下标识符中,不能作为合法的C用户定义标识符的是(void). 5、【单选题】 (1分) 以下标识符中,不能作为合法的C用户定义标识符的是( signed ). 第三章 1、【判断题】 (1分) 逻辑运算低于关系运算.(对) 2、【判断题】 (1分) x*=y+8 等价于 x=x*(y+8).(对) 3、【判断题】 (1分) 关系运算高于算术运算.(错) 4、【判断题】 (1分) 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真".(对) 5、【单选题】 (1分) 若给定条件表达式(M)?(a++):(a--),则其中表达式M( 和(M!=0)等价 ). 第四章 1、【单选题】 (1分) 结构化程序设计所规定的三种基本控制结构是( 顺序、选择、循环 ). 2、【单选题】 (1分) C语言中用于结构化程序设计的三种基本结构是(顺序结构、选择结构、循环结构).

中国石油大学《C语言程序设计》期末复习题及答案

《C语言程序设计》期末复习题 一、选择题 1.能将高级语言编写的源程序转换成目标程序的是() A.链接程序 B. 解释程序 C. 编译程序 D.编辑程序 2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。 A. 1010&&a<15 D.!(a<=10)&&!(a>=15) 3.当调用函数时,实参是一个数组名,则向函数传送的是( )。 A. 数组的长度 B. 数组的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值 4.执行下面的程序段后,k的值是() int k=1,n=325; do { k*=n%10;n/=10;}while(n); A. 3 B. 30 C. 523 D. 325 5.若有以下数组说明,则i=6;a[a[i]]元素数值是()。 int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; A.3 B.8 C.6 D.5 6.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是() A. for(i=1,p=1;i<=5;i++) p*=i; B. for(i=1;i<=5;i++){ p=1; p*=i;} C. i=1;p=1;while(i<=5){p*=i; i++;} D. i=1;p=1;do{p*=i; i++; }while(i<=5); 7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}}; 则数组a的第一维的大小为: ( ) A. 12 B. 3 C. 4 D.无确定值 8.设有如下程序段,则执行p=s;语句后,以下叙述正确的是( )。 char s[20]= “Bejing”,*p; p=s; A.可以用*p表示s[0] B.s数组中元素的个数和p所指字符串长度相等 C.s和p都是指针变量

C语言程序设计(第二版)习题参考答案

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

中国石油大学(华东)C语言习题答案

C语言复习题 【设计型】5.1 输出一行星号 编写程序在一行中输出 N 个星号。 输入: N值 输出:一行中N个星号 #include int main() { int a,i; scanf("%d",&a); for(i=1;i<=a;i++) printf("*"); printf("\n"); return 0; } 【设计型】5.2 打印平行四边形输入图形的高 n ,输出如下例( n=5 )所示的图形 . ***** ***** ***** ***** ***** 输入:

整数n例如 5 输出: 由*组成的高为5的平行四边形 #include int main() { int i,j,num; scanf("%d",&num); for(i=0;i int main() { double n,i,sum,k=1.0; scanf("%lf",&n);

i=1,sum=0; while(i<=n) { sum=sum+k/i; i++; k=-k;(用这个式子实现正负交替) } printf("sum=%.4lf\n",sum); return 0; } 【设计型】5.4 分数序列 有一个分数序列:...............,输入整数n,求出其前n项的和。 输出语句格式为:printf("sum=%16.10f\n",s); #include int main() { int n,a,b,i,temp; double sum; scanf("%d",&n); i=1,sum=0,a=2,b=1; while(i<=n)

智慧树知到程序设计基础(C语言)测试第三章单元测试参考答案

智慧树知到程序设计基础(C语言)测试第三章单元测试参考答案 ?总题数: 10 1 【判断题】 (10分) 表达式25/3%3的值为2. A.错 B.对 正确 本题总得分10分 2 【判断题】 (10分) 若有定义:int y=2; 则计算表达式y+=y后的y值是2() A.对 B.错 正确 本题总得分10分 3 【单选题】 (10分) 下列不正确的叙述是()。 A.在C语言程序中,SUM和sum是两个不同的变量。 B.若a和b类型相同,在计算了赋值表达式a=b后b中的值将复制到a 中,而b中的值不变。 C.在C语言程序中,%运算符的优先级高于/ 运算符。 D.在C语言程序中,进行赋值运算时,先将右侧表达式的值转化左侧变 量的类型再赋给变量。 正确 本题总得分10分 4 【单选题】 (10分) 在C语言中,要求运算对象必须是整型的运算符是()。

A.- B.% C.* D./ 正确 本题总得分10分 5 【单选题】 (10分) 下列选项中正确的定义语句是()。 A.double a ; b; B.double a=7,b=7; C.double , a , b; D.double a=b=7; 正确 本题总得分10分 6 【单选题】 (10分) 输入一个3位正整数n,分别输出n的个位a、十位b、百位c。下面程序的语句填空应为:() #include int main( ) { int n,a,b,c; scanf("%d",&n); a=____;; b=n/10%10; c=n/100; printf("a=%d b=%d c=%d",a,b,c); return 0; }

中石大c语言程序设计第次在线作业答案

第三次在线作业 单选题 (共20道题) 收起 1.(分)在C语言中,当函数调用时()。 A、A. 实参和形参各占一个独立的存储单元 B、B. 实参和形参共用存储单元 C、C. 可以由用户指定实参和形参是否共用存储单元 D、D. 由系统自动确定实参和形参是否共用存储单元 我的答案:A 此题得分:分 2.(分)以下函数调用语句中实参的个数为()。 exce((v1,v2),(v3,v4,v5),v6); A、A. 3 B、B. 4 C、C. 5 D、D. 6 我的答案:A 此题得分:分 3.(分)如果在一个函数的复合语句中定义了一个变量,则该变量()。 A、A. 只在该符合语句中有效,在该符合语句外无效 B、B. 在该函数中任何位置都有效 C、C. 在本程序的原文件范围内均有效 D、D. 此定义方法错误,其变量为非法变量 我的答案:A 此题得分:分 4.(分) C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。 A、A. float型 B、B. int型 C、C. long型

D、D. double型 我的答案:B 此题得分:分 5.(分) C语言规定,函数返回值的类型是由()。 A、A. return语句中的表达式类型所决定 B、B. 调用该函数时的主调函数类型所决定 C、C. 调用该函数时系统临时决定 D、D. 在定义该函数时所指定的函数类型决定 我的答案:D 此题得分:分 6.(分)在C语言程序中,以下描述正确的是()。 A、A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B、B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C、C. 函数的定义和函数的调用均不可以嵌套 D、D. 函数的定义和函数的调用均可以嵌套 我的答案:B 此题得分:分 7.(分)以下叙述中正确的是()。 A、A. 全局变量的作用域一定比局部变量的作用域范围大 B、B. 静态(static)类别变量的生存期贯穿于整个程序的运行期间 C、C. 函数的形参都属于全局变量 D、D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值 我的答案:B 此题得分:分 8.(分)以下程序的运行结果是()。 #include< stdio_h> void sub(int s[],int y) { static int t=3; y=s[t];t--; } main() { int a[]={1,2,3,4},i,x=0; for(i=0;i< 4;i++){ sub(a,x);printf("%d",x);} printf("\n"); } A、 B、 C、

2018智慧树C语言程序设计章测试答案2018知到C语言程序设计章测试

2018智慧树C语言程序设计章测试答案2018知到C语言程序 设计章测试 2018知道C语言程序设计章节测试答案知识树C语言程序设计章节测试最终答案 寻找松柏丛数的灯芯,选择宝藏,得到完整答案第1章单元测试 题目C语言是一个()以下的项目,不是C语言的特点()答案高级语言具有很强的网络操作功能。C程序中的每个命令都使用以下语句。错误是()分号用作终止符。一个C程序是从()执行的从这个程序的主函数开始到c程序的主函数结束,注释描述只能包含以下语句。不正确的是()第二章单元测试后 主题后面的一条语句是已知的,将整形变量a、b和c的值分别定义为2、3和4,并且运算表达式a * = 16+(b++)-在(++c)之后,值a是()答案28在c语言中,要求参与运算的数必须是整数的运算符是()%合法的C标识符是()执行以下过程后,显示的结果是()main(){ int a;printf (“%d \\n “,(a=3*5,a*4,a+5));在以下程序中执行输出语句后,X 的值为()main(){ int x;printf(“%d\\n “,(x=4*5,x*2,x+20));判断:表达式1/4+2.75的值是3以下转义字符不正确()以下语句的输出是()printf(\如果变量已被正确描述为浮点类型,则语句的答案是++t 14 10.0,22.0,33.0 scanf(\给定10.0用于A,22.0,C用于B,33.0用于C,以下不正确的输入形式是()调用getchar和putchar函数时,必须包括的头文件是()Stdio.h使用scanf(\为变量a、b赋值要使a和b都为

50,正确的输入是()“put char(70);”这个C语句的输出结果是()a = 50,b = 50 F。搜索灯芯的松簇数,选择宝藏,得到完整的答案 第4章单元测试1 [单项题] (20分) 如果需要在“如果”后面的括号来表示“A不等于0”的关系,可以表示这个关系的表达式是()B.!交流a=0交流a = 0交流a 2 [单题] (20分) 以下程序段,运行后输出为()char m = ‘ b if(m++> ‘ b ‘)printf(\ else print(\ d b . c . c . a . a 3 [单选题)(20分) 设置a=1,b=2,c=3,d=4,然后表达式a

石油大学C语言在线考试附答案

《C语言》综合复习资料 一、单选题 1. C语言中基本数据类型有( ) A)整型、实型、逻辑型B)整型、字符型、逻辑型 C)整型、实型、字符型D)整型、实型、字符型、逻辑型 2. 在C语言中,数字029是一个( ) A)八进制数B)十进制数C)十六进制数D)非法数 3. 在以下关于C语言的不严格的叙述中,错误的说法是( ) A)在标识符中,大写字母和小些字母的意义相同 B)有些不同类型的变量可以在一个表达式中运算 C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以有不同的含义 4. 已知int a=4,b=5; ,这执行表达式a=a>b 后,变量a的值为( ) A)0 B)1 C) 4 D) 5 5. 设有定义int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是( ) A)a&&b B)a<=b C)a||b+c&&b-c D)!((a

C语言程序设计教程(第二版)电子工业出版社,黄皮书课后答案

习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 4. 略 5. 略 1-3 编程题 1. main() { float a=3, b=4, c=5, s, area; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); p rintf(“area=%f ” , area ); } 2. main() { printf(“******************************”); printf(“* hello world *”); printf(“******************************”);

} 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~14 BCA A 2-2 思考题 1.2.00000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 9.70 习题3 3-1单选题 1-5BBDAB 6-10DDBDC 11-15AADCA 16-20CBACC 21-25ABDBB 3-2填空题 1. 3 2.0261 3.0x10 4.0 5. 2, 1 互换a,b的值 6. 6.6 7.–03 8.7 9. 5.0,4,c=3 10.i=10,j=20 11.(1) 65 (2) 65,A

相关文档
相关文档 最新文档