C语言程序设计-学生成绩管理系统设计

C语言程序设计-学生成绩管理系统设计
C语言程序设计-学生成绩管理系统设计

课程设计成果报

题目:学生成绩管理系统设计课程:程序设计基础

目录

1 设计目得?错误!未定义书签。

2 设计任务内容?错误!未定义书签。

3系统总体设计........................................................................ 错误!未定义书签。4系统详细设计?错误!未定义书签。

4、1输入学生信息?错误!未定义书签。

4、2 输出学生信息?错误!未定义书签。

4、3删除学生信息?错误!未定义书签。

4、4查询学生信息............................................................. 错误!未定义书签。

4、4、1 根据姓名查询.................................................. 错误!未定义书签。

4、4、2根据学号查询?错误!未定义书签。

4、5 插入学生信息............................................................... 错误!未定义书签。

4、6学生信息排序................................................................ 错误!未定义书签。

4、7 主函数......................................................................... 错误!未定义书签。5调试与测试.............................................................................. 错误!未定义书签。6课程设计心得与体会............................................................ 错误!未定义书签。

7 参考文献.................................................................................... 错误!未定义书签。8附录?错误!未定义书签。

1设计目得

本课程设计就是信息管理与信息系统专业重要得实践性环节之一,就是在学生学习完《程序设计基础》课程后进行得一次全面得综合练习。本课程设计得目得与任务:

1、巩固与加深学生对C语言课程得基本知识得理解与掌握;

2、掌握C语言编程与程序调试得基本技能;

3、利用C语言进行基本得软件设计;

4、掌握书写程序设计说明文档得能力;

5、提高运用C语言解决实际问题得能力.

2 设计任务内容

学生成绩管理系统设计

学生成绩相关信息包括:学号、姓名、班级、数学成绩、英语成绩、计算机成绩等(学号唯一),总成绩.

系统要求实现如下功能:

1)系统功能以菜单方式工作;

2)数据得添加:从键盘输入数据存放到结构体数组中;

3)数据得插入:从指定位置插入一条记录;

4)数据得输出:在屏幕上显示出所添加得数据;

5)数据得删除:从指定位置删除一条记录;

6)数据得查找,通常以两种方式进行查找,如姓名、记录号(或学号、职工号等);

7)数据得排序;

8)退出系统.

以上每个内容需要通过单独得函数来实现,数据以结构体数组得形式组织。

3 系统总体设计

4 系统详细设计

本系统用来储存多名学生得信息,并对信息进行相关得处理,使用结构体实现相关功能。结构体代码如下:

typedef struc t //为结构体起别名stu [N],简化程序。 {

?ch ar n o[20]; //定义no 为c ha r型数据,且长度有20列。 ?c har name [20]; ch ar Cl ass[20];

i nt m ath,english,puter ,all; //定义结构体中得所有元素。

}Stude nt; St ud ent st u[N];

相关函数:结构体函数、main(主函数)、Input (输入函数)、O utput(输出函数)、Find name(按姓名查询函数)、F ind no(按学号查询函数)、Delete(删除函数)、Insert(插入函数)、R ank(排序函数)、exit (退出函数)

4、1 输入学生信息

输入学生信息就就是对定义得结构体中得成员进行赋值。其中,用户需要输入得就是学号、姓名、班级、数学成绩、英语成绩、计算机成绩,以及就是否继续得指令,总成绩由求与函数实现.代码如下:

v oid In put() //用户自定义Inp ut 函数,实现数据得输入功能.

学生成绩 管理系统

输入学 生信息

输出学 生信息

查询学 生信息

根据姓 名查询

根据学 号查询

删除学 生信息

插入学 生信息

学生信 息排序

?char k,x[20];

?while(k!='n’&&k!=’N')//当输入得不就是N或者n时,执行该循环。

{

?printf("输入学生学号:");

scanf(”%s",stu[n]、no);

printf("输入学生姓名:");

?scanf("%s”,stu[n]、name);

??printf("输入学生班级:");

scanf(”%s",stu[n]、Class);

?printf("输入学生得数学成绩:”);

scanf(”%d",&stu[n]、math);

?printf("输入学生得英语成绩:");

?scanf("%d",&stu[n]、english);

?printf(”输入学生得计算机成绩:”);

scanf("%d",&stu[n]、puter);

?stu[n]、all=stu[n]、math+stu[n]、english+stu[n]、puter;//输入学生得各项信息,并赋值到结构体中。

??gets(x);//清除多余得输入内容.

printf(”输入下一个?(Y/N)\n");

scanf("%c”,&k);

?n++;//执行完一次循环后,将全局变量n(成员数)自增1.

}

4、2输出学生信息

输出学生信息就就是将结构体中所有成员得各个元素得值显示在屏幕上,使用%—10d或者%-10s格式(左对齐,每个数据占10列)可将数据用表列形式输出,使用循环语句将i个成员信息全部输出。代码如下:

void Output() //用户自定义Output函数,实现数据得输出功能.

?inti;

?printf("--—-—-—---—-----—--—--—--—--—-------——----———-—-—-——-—-——-—-—-——--—\n”);

printf(”学号姓名班级数学英语计算机总成绩\n”);?printf(”-——-—-—--——---———--————--------——-————--—----——--—-————--—---—--—-—\n");

for(i=0;i

?{

?printf("%-10s%-10s%-10s%—10d%-10d%-10d%-10d\n",stu[i]、no,stu[i]、name,stu[i]、Class,stu[i]、math,stu[i]、english,stu[i]、puter,stu[i]、all);

printf(”-——---—-—--------—-----—-—-——----————--------—--—--—--—————-—-————-\n”);

} //使用for循环语句,输出结构体中所有成员信息.

4、3 删除学生信息

删除学生信息就就是将第i+1个成员得每个元素赋值到要删除得第i个成员得相应元素得位置上,再输出结构体中得前i个成员信息,使用循环结构依次执行到第n个成员,实现对第i个成员得删除。代码如下:

void Delete()//用户自定义Output函数,实现数据得输入功能。

?char x[20];//输入要删除得学生姓名,char型数据占20列。

?int j,i=0;

printf("输入要删除得学生姓名:”);

scanf("%s”,x);

?while(strcmp(stu[i]、name,x)!=0&&i

i++;//比较输入得x数据与结构体中name元素,若不相同,i自增1。

if(i==n)

??printf("未找到相关学生信息!\n");

?} //若i与n值相同,说明无此数据,输出“未找到学生信息!”.

for(j=i;j〈n-1;j++)

?{

?strcpy(stu[j]、no,stu[j+1]、no);

strcpy(stu[j]、name,stu[j+1]、name);

?strcpy(stu[j]、Class,stu[j+1]、Class);//将stu[j+1]中得内容复制到stu[j]中。

??stu[j]、math=stu[j+1]、math;

?stu[j]、english=stu[j+1]、english;

??stu[j]、puter=stu[j+1]、puter;

??stu[j]、all=stu[j+1]、all;

?} //将结构体中得元素赋值给前一元素。

?n——; //数据删除后,全局变量n值(成员数)自减1。

printf(”该学生信息已删除!\n");

4、4查询学生信息

4、4、1根据姓名查询

按照学生姓名查找学生信息,要求用户输入学生得姓名,再与结构体中得数据进行一一比对,输出结构体中与该数据相同得成员得所有信息,从而实现查找功能。代码如下:

void Findname()//用户自定义函数,实现对指定数据得查找功能。

char s[20];//定义用户输入得学生姓名数据为char型,占20列。

inti=0;

?printf("请输入要查询得学生姓名:");

?scanf("%s",s);

?while(strcmp(stu[i]、name,s)!=0&&i<n)

??i++;//当输入得姓名与当前姓名不相同时,i自增1,比较下一个成员。

?if(i==n)

?{

printf(”未找到相关学生信息!\n”);

?}

printf("-—-—-—----—-—-—-—-———-----——-—----—-—-——---—-——-----—--——--————----\n");

?printf(”学号姓名班级数学英语计算机总成绩\n”);

printf("-——-—--—------—--------—---—---——-----————-----—-------——-—---—-—-—\n”);

printf("%-10s%-10s%—10s%-10d%-10d%-10d%-10d\n”,stu[i]、no,stu[i]、name,stu[i]、Class,stu[i]、math,stu[i]、english,stu[i]、puter,stu[i]、all);

?printf("—-—-—--—-—--—-—--—-—-------——--—-—-———-——--——--—-—-—-—-—-------—---\n");

}//以表列得形式输出查找到得成员得相关信息。

4、4、2根据学号查询

按照学生学号查找学生信息,要求用户输入学生得学号,再与结构体中得数据进行一一比对,输出结构体中与该数据相同得成员得所有信息,从而实现查找功能。代码如下:

voidFindno()//用户自定义函数,实现对指定数据得查找功能。

{

char s[20];//定义用户输入得学生学号数据为char型,占20列。

int i=0;

printf("请输入要查询得学生学号:");

scanf("%s”,s);

?while(strcmp(stu[i]、no,s)!=0&&i〈n)

i++;//当输入得学号与当前学号不相同时,i自增1,比较下一个成员.

if(i==n)

{

?printf("未找到相关学生信息!\n”);

?}

?printf("----—-------------—----—-—-———-—---—-—-—--——-----------—----—----——\n”);

printf(”学号姓名班级数学英语计算机总成绩\n");

?printf(”---—---————-—--———-—-—-—-------——-----——-—----——--—————-———--—--—-—\n");

?printf(”%-10s%—10s%—10s%—10d%-10d%-10d%—10d\n",stu[i]、no,stu[i]、name,stu[i]、Class,stu[i]、math,stu[i]、englis h,stu[i]、puter,stu[i]、all);

?printf(”—-----------—------—------—---———-—--—---———---—---———--------———--\n");

} //以表列得形式输出查找到得成员得相关信息。

4、5 插入学生信息

插入学生信息时,用户输入要插入得位置i,当要插入位置大于结构体成员总数时,直接将数据插入到结构体最后(相当于直接执行输入函数);当要插入位置小于等于结构体成员总数时,将i~j中得每一项分别向后移动一个位置,再将要插入得数据赋值给第i个位置。代码如下:

voidInsert()//用户自定义Insert函数,实现将学生信息插入指定位置得功能。

inti,j;

printf("请输入要插入得位置:”);

?scanf("%d",&i);

?if(i〉n)

?{ //当要插入位置大于结构体成员总数时,直接将数据插入到结构体最后。

printf("输入学生学号:”);

scanf(”%s”,stu[n]、no);

printf(”输入学生姓名:");

scanf(”%s",stu[n]、name);

?printf("输入学生班级:”);

?scanf("%s”,stu[n]、Class);

printf("输入学生得数学成绩:”);

scanf("%d”,&stu[n]、math);

printf("输入学生得英语成绩:");

?scanf(”%d",&stu[n]、english);

printf(”输入学生得计算机成绩:”);

?scanf("%d”,&stu[n]、puter);

stu[n]、all=stu[n]、math+stu[n]、english+stu[n]、puter;?printf(”学生信息输入成功!\n”);

?}//用户分别输入学生得各项信息,系统返回“输入成功”得信息。

?else

?{//当要插入位置不大于结构体成员总数时,执行下述操作。

for(j=n—1;j>=i;j—-)

?{

??strcpy(stu[j+1]、no,stu[j]、no);

??strcpy(stu[j+1]、name,stu[j]、name);

??strcpy(stu[j+1]、Class,stu[j]、Class);

stu[j+1]、math=stu[j]、math;

??stu[j+1]、english=stu[j]、english;

??stu[j+1]、puter=stu[j]、puter;

??stu[j+1]、all=stu[j]、all;

}//通过for循环语句,将第j+1项得各项数据赋值给第j项,直到要

插入数据得位置为止,实现第i项之后得数据每项都向后移动一个位置。

?printf(”输入学生学号:");

?scanf("%s",stu[i]、no);

?printf("输入学生姓名:”);

??scanf("%s",stu[i]、name);

??printf("输入学生班级:");

scanf("%s",stu[i]、Class);

??printf("输入学生得数学成绩:");

??scanf(”%d",&stu[i]、math);

?printf("输入学生得英语成绩:");

??scanf("%d",&stu[i]、english);

printf("输入学生得计算机成绩:");

?scanf("%d",&stu[i]、puter);

?stu[i]、all=stu[i]、math+stu[i]、english+stu[i]、puter;

??printf(”学生信息输入成功!\n");

} //将用户输入得各项数据赋值到第i个位置中,实现数据得插入。

?n++;//全局变量n自增1,保证插入得数据存储到结构体中。

4、6学生信息排序

排序就就是通过元素得两两比较,并按照条件,若前一个成员学号值比后一个大,将这二者得所有数据进行交换,使用循环结构重复执行,进行n-1次比较交换后,即完成对结构体中所有成员得排序。

void Rank()

{

int i,j,p,q,r,y;

char x[20],t[20],w[20];//定义int型数据与char型数据,用于交换元素值.

?printf("正在根据学生学号进行排序,请稍后、、、\n”);

for(i=0;i〈n—1;i++)

?for(j=0;j〈n—1-i;j++)//通过循环结构控制进行n-1次比较交换。

?if(strcmp(stu[j]、no,stu[j+1]、no)〉0)

???{//两个字符串得比较,意思就是判断前一字符串大于后一字符串。

???strcpy(t,stu[j]、no);

???strcpy(stu[j]、no,stu[j+1]、no);

?strcpy(stu[j+1]、no,t); //将stu[j]、no与stu[j+1]、no交换。

strcpy(x,stu[j]、name);

strcpy(stu[j]、name,stu[j+1]、name);

???strcpy(stu[j+1]、name,x);

???strcpy(w,stu[j]、Class);

??strcpy(stu[j]、Class,stu[j+1]、Class);

???strcpy(stu[j+1]、Class,w);

????y=stu[j]、math;

???stu[j]、math=stu[j+1]、math;

?stu[j+1]、math=y;

?p=stu[j]、english;

????stu[j]、english=stu[j+1]、english;

???stu[j+1]、english=p;

?q=stu[j]、puter;

?stu[j]、puter=stu[j+1]、puter;

???stu[j+1]、puter=q;

??r=stu[j]、all;

?stu[j]、all=stu[j+1]、all;

??stu[j+1]、all=r;

???} //实现第j个成员与第j+1个成员信息得交换。

}

4、7 主函数

void main()//无参数无返回值得main函数

?for(;;)

?for(;;)

?{//循环语句实现在一项功能执行结束之后菜单函数得重复执行。

?int n=0;

??switch(menu())

??{

case 1:Input();Output();break; //输入1时,调用Input与Output函数。

?case2:Output();break;//输入2时,调用Output函数.

case3://输入3时,调用Find函数,再次进行功能得选择。

?switch(Find())

???{

?case1:Findname();break;//输入1时,调用Findname函数。

??case 2:Findno();break; //输入2时,调用Findno函数.

?}break;

?case4:Delete();break; //输入4时,调用Delete函数。

??case 5:Insert();break;//输入5时,调用Insert函数。

?case6:Rank();Output();break;//输入6时,调用Rank与Output函数。

case 0:exit(0);break;//输入7时,调用exit函数,退出程序。???default:printf(”*输入错误!*”);break; //输入不就是0~6得字符时,输出“输入错误”得信息。

?}

?}

}

5调试与测试系统主界面:

输入学生信息:

输出学生信息:

删除学生信息:

插入学生信息:

查询学生信息:(按姓名查询)

查询学生信息:(按学号查询)

学生信息排序:

6 课程设计心得与体会

*******在老师得悉心指导与热心帮助之下,我得C语言课程设计最终顺利完成.最后,向所有曾经关心与帮助过我得老师以及同学们表示由衷地感谢!

7 参考文献

《C语言课程设计实用教程》,谭浩强编,机械工业出版社

《C语言程序设计》,谭浩强编,清华大学出版社

《C程序设计(二级)教程》,谭浩强编,清华大学出版社

8附录

本系统完整程序代码如下:

#include

#include〈string、h> //文件包含:关于字符串操作得一些基本函数.

#include〈stdlib、h〉//文件包含:包含exit()函数。

#define N 80 //宏定义:定义N为80,程序中只进行替换,不进行语法检查。

typedefstruct

{

?charno[11];

charname[8];

char Class[10];

int math,english,puter,all;

}Student;

Student stu[N]; //结构体:用来储存多名学生得多项信息.

int n=0;//定义全局变量n,代表结构体中得成员数.

intmenu()//菜单函数,使系统功能以菜单方式工作。

?intc;

?do{

printf("\t========学生信息管理系统========\n\n");

??printf("\t\t1、输入学生信息\n”);

??printf("\t\t2、输出学生信息\n”);

printf(”\t\t3、查询学生信息\n”);

??printf(”\t\t4、删除学生信息\n");

?printf(”\t\t5、插入学生信息\n");

?printf("\t\t6、学生信息排序\n”);

printf(”\t\t0、退出系统\n\n”);

??printf(”\t请选择:”);

??scanf("%d”,&c);

}while(c<0||c〉6); //当c值小于0或大于6时,循环输出,直到不满足。

return(c);//返回c值给主调函数,用来选择相应功能。

}

void Input()//输入学生信息.

?chark,x[10];

?while(k!='n'&&k!='N’)

?printf("输入学生学号:");

??scanf(”%s",stu[n]、no);

printf(”输入学生姓名:”);

?scanf("%s",stu[n]、name);

printf("输入学生班级:");

scanf(”%s”,stu[n]、Class);

??printf("输入学生得数学成绩:”);

??scanf("%d”,&stu[n]、math);

?printf("输入学生得英语成绩:”);

??scanf("%d",&stu[n]、english);

?printf("输入学生得计算机成绩:");

scanf("%d",&stu[n]、puter);

?stu[n]、all=stu[n]、math+stu[n]、english+stu[n]、puter;

?gets(x);

??printf("输入下一个?(Y/N)\n”);

scanf("%c”,&k);

??n++;

?}

}

voidOutput()//输出学生信息。

int i;

printf("—--—----—-———-——-—---——------——----—-—-——----—-—--—-—--—----—-——-—-\n");

printf("学号姓名班级数学英语计算机总成绩\n");

printf(”——--—-—----—--———---——----—-—--—-—----———-—-—-------—-—-—---———-——-\n");

?for(i=0;i〈n;i++)

?{

printf(”%-10s%-10s%-10s%—10d%—10d%—10d%-10d\n",stu[i]、no,stu[i]、name,stu[i]、Class,stu[i]、math,st u[i]、english,stu[i]、puter,stu[i]、all);

?printf("-—-———-——-—--—-——--——-----—-—----——---—-—-—--——-————--—--—-——--——-—\n");

?}

void Delete()//删除学生信息.

charx[8];

intj,i=0;

printf(”输入要删除得学生姓名:”);

scanf(”%s",x);

while(strcmp(stu[i]、name,x)!=0&&i〈n)

?i++;

?if(i==n)

?printf("未找到相关学生信息!\n”);

C语言程序设计试题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)

A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main()

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.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计试题集

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言程序设计试卷及答案

C语言程序设计试卷及 答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

C语言程序设计 一、单项选择题(共15小题,每题4分,共60分) 1、下列有关C语言的叙述中错误的是()。 A)C语句必须以分号结束B)任何一个C程序中有且只有一个主函数 C)复合语句在语法上可被看作一条语句D)C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A)MAINB)_HJC)2ongD)LINE1 3、以下能正确定义一维数组的是()。 A)inta[5]={0,1,2,3,4,5};B)inta[5]=”012345”; C)chara[]=”012345”;D)chara[5]={0,1,2,3,4,5}; 4、以下关于main()函数的说法,正确的是。 A)main()必须是程序的第一行B)main()可以有参数 C)一个程序可以有多个main()D)main()可以被用户自定义的函数调用 5、设charstr1[10]=“ABCDE”,str2[10]=“xyz”; 则执行语句printf(“%d”,strlen(strcpy(str1,str2)));后的输出结果是()。 A)9B)8C)5D)3 6、若用数组名作为函数调用的实参,则传递给形参的是()。 A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()。 A)void?B)double?C)int?D)char 8、下面不能正确进行字符串赋值操作的语句是()。

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

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语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

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

绝密★启用前学院 学年第二学期期末考试 级专业()《 C语言程序设计》试卷D 一、单项选择题(本大题共15小题,每小题2分,共30分) 1、以下正确的C语言自定义标识符是() A._la B.2a_ C.do D.a.12 2、在C语言中,错误 ..的常数表示是() A.0L B.-0x6aL C.′6′D.1.234E3.5 3、设int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是() A.1 B.2 C.6 D.10 4、设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf(″%d,%d,%d\n″,x,y,z); 执行后输出的结果是() A.2,2,0 B.3,3,1 C.3,2,0 D.3,2,1 5、逗号表达式a=2*6,a*3,a+5的值是() A.12 B.17 C.36 D.41 6、设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是() A.0 B.1 C.2 D.3 7、C语言中,错误 ..的int类型的常数是() A.1E5 B.0 C.037 D.0xaf 8、在C语言中,′a′和″a″存储所占用的字节数分别是() A.1,1 B.1,2 C.2,1 D.2,2 9、设int x;,则以下语句中错误 ..的输入是() A.scanf (″%d″,x); B.scanf (″%d″,&x); C.scanf (″%o″,&x); D.scanf (″%x″,&x); 10、在C语言中,运算符″=″和″==″的功能分别是() A.关系运算和赋值运算B.赋值运算和关系运算 C.都是关系运算D.都是赋值运算 11、设int x[]={1,2,3,4,5},*p=x;,则值为3的表达式是() A.p+=2, *p++ B.p+=2, *++p C.p+=2, p++ D.p+=2, ++*p 12、设for(i=0, j=10; (j>0)&&(i<4); i++, j--);,该语句的循环次数是() A.0 B.3 C.4 D.无限 13、设函数定义如下: float f1 (float a, float b) { return (a+b); } 若有float x=1.1, y=2.2;,则以下语句中正确的函数调用是() A.printf (″%f″, f1(x)); B.printf (″%f″,f1(&x, y)); C.printf (″%f″,f1(*x,*y)); D.printf (″%f″,f1(x, y)); 14、若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是()。 A. i=*p; B. *p=*&j; C. i=&j ; D. i=**p; 15、设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句: printf(″%d″,strlen(strcpy(str1,str2))); 后的输出是()。 A. 3 B. 5 C. 8 D. 9 二、填空题(本大题共10小题,每小题2分,共20分) 16、一个C语言程序的基本组成单位是___________________。 17、求字符串的有效长度的系统函数名是___________________。 18、设float a [4][5];,则数组a中第一维下标的最大值是___________________。 19、设int a; float b; char c; long d; double e; , 则表达式a/c-b+d-e值的类型是 ______________。 20、设int a=2;,则执行a+=a*=15;后,变量a的值是__________。 21、一个C语言程序的执行起点是__________。 22、设double y[4][5];,则数组y中元素的个数是__________。 23、设int x=7,y=3,则表达式x%y+x/y的值是__________。 24、一个short型变量所占内存的字节数是____________________。

相关文档
最新文档