C语言程序设计报告书

C语言程序设计报告书
C语言程序设计报告书

一、实践的目的和要求

加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力.

二、内容

在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等);

运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等.

三、实验任务:通讯录

设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针

功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等.

四、设计思路

1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编.

2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函

数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信

息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save

函数来保存信息,用Exit函数来退出通讯录.

3.小组分工,每个人分配几个函数,按情况进行分配任务.

五、程序代码

#include/*字符函数和字符串函数*/

#include/*字符模式函数(调用getch()函数)*/

#include/*输入输出函数*/

int i;

struct friend/*电子通讯录结构定义*/

{

char num[5]; /*编号*/

char name[11]; /*名字*/

char sex[2]; /*性别*/

char phone[12]; /*电话*/

char address[26]; /*地址*/

char post_num[11]; /*邮编*/

}friends[50];

FILE *fp;

void Data_load() /*数据载入函数*/

{int j;

fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/ if(fp==NULL) /*判断是否存在friend.txt,如果不存在则创建*/

{ fp=fopen("friend.txt","w");

i=0;

}

else

{for(i=0;i<50;i++)

{ j=fgetc(fp);

if(j==EOF) /*判断是否到了文件尾*/

return;

fseek(fp,i*sizeof(struct friend),0);

fread(&friends[i],sizeof(struct friend),1,fp); /*从文件中读取一条记录*/ }

}

}

void Menu_Select() /*显示菜单界面*/

{

printf(" \n");

printf(" \n");

printf(" \n");

printf(" Address Book Management System \n");

printf(" \n");

printf(" ======================\n");

printf(" 1.Address book data Entry\n"); /*数据输入*/ printf(" 2.Address Book data Show\n"); /*数据显示*/ printf(" 3.Address Book data Search\n"); /*数据查找*/ printf(" 4.Address Book data Alter\n"); /*数据修改*/ printf(" 5.Address Book data Insert\n"); /*数据插入*/ printf(" 6.Address Book data Delete\n"); /*数据删除*/ printf(" 7.Address Book data Save\n"); /*数据保存*/ printf(" 0.Exit\n"); /*退出*/ printf(" ======================\n");

printf( " Please chioce 0-7 \n\n");

}

int Data_check(int k,char ID[5]) /*检查通讯录中是否存在相同ID或ID输入格式错误*/ {

int j;

if(ID[0]=='0')

k=1;

for(j=0;ID[j]!='\0';j++)

{

if(ID[j]>'9'||ID[j]<'0')

k++;

}

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

k++;

}

return k;

}

void Data_Input() /*数据输入函数*/ {

char yes_no='1';

char ID[5];

int k=0;

if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

printf("

************************************************************************\n"); printf(" ******************* Add Address Book Information

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

printf("

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

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

}

for(;i<50;i++)

{

do

{

switch(yes_no)

{

case'1': /*如果输入为'1',则进行数据输入*/ printf(" ****** No.(4) Name(10) Sex(M/F) Phone(11) Address(25)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s%s",ID,friends[i].name,friends[i].sex,friends[i].phone,friends [i].address,friends[i].post_num);

Data_check(k,ID);

while(Data_check(k,ID)>0) /*检查输入的ID是否已存在,如果存在重新输入*/ {

printf("The No. already exists Or The No. isn't correct, please re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID);

if(i<49)

{

printf("\n\n Whether to be continue? Y(1)/N(0) \n\n");

yes_no=getch();

}

if(i>=49)

printf("\n\n Storage full!\n\n");

break;

case'0':

break;

default:

yes_no=getch();

}

}while(yes_no!='1'&&yes_no!='0'); /*如果输入的不是'1'或'0'则重新输入*/ if(yes_no=='0') /*如果输入'0'则退出输入函数*/

{

i++;

break;

}

}

}

int The_Size(char a[],char b[]) /*比较两个ID的大小*/ {

int j,t;

if((j=strlen(a)-strlen(b))>0) t=1;

if((j=strlen(a)-strlen(b))<0) t=-1;

if((j=strlen(a)-strlen(b))==0)

{

if(strcmp(a,b)>0) t=1;

if(strcmp(a,b)<0) t=-1;

if(strcmp(a,b)==0) t=0;

}

return t;

}

void Data_Show() /*数据输出函数*/ {int j,k;

char m;

struct friend t;

printf("

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

printf(" No. Name Sex Phone Address

Zip_Code \n");

printf("

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

for(j=0;j

{

if(The_Size(friends[k].num,friends[k+1].num)==1)

{

t=friends[k];

friends[k]=friends[k+1];

friends[k+1]=t;

}

}

}

for(j=0;j

{

printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,friends[j ].sex,friends[j].phone,friends[j].address,friends[j].post_num);

m=getch();

if(m==’’)

break;

}

printf("\n\n There are %d data in the book .\n\n",i); }

void Data_Search() /*数据查找函数*/

{

char k;

int j,a,b;

char ID[5];

char NAME[11];

printf("Search by No. : 1\n");

printf("Search by name : 2\n");

k=getch();

switch(k)

{

case'1': /*按ID查找*/

a=0;

printf("\n\n Please enter the No.\n\n");

scanf("%s",ID);

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

{

a++;

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,frien ds[j].sex,friends[j].phone,friends[j].address,friends[j].post_num);

}

}

if(a==0)

printf(" Do not have to find the No.!\n\n");

break;

case'2': /*按姓名查找*/

b=0;

printf("\n\n Please enter the Name\n\n");

scanf("%s",NAME);

for(j=0;j

{

if(strcmp(NAME,friends[j].name)==0)

{

b++;

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,friends[j ].sex,friends[j].phone,friends[j].address,friends[j].post_num);

}

}

if(b==0)

printf(" Do not have to find the Name!\n\n");

break;

default:

printf("\n\n Error!\n");

break;

}

}

void Data_Insert() /*数据插入函数*/

{if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

char ID[5];

int k=0;

printf("Please enter the No. that you want to insert.\n");

scanf("%s",ID);

Data_check(k,ID);

printf("%d",Data_check(k,ID)); /*检查所需插入的ID是否已存在,如果存在重新输入*/

while(Data_check(k,ID)>0)

{

printf("The No. already exists Or The No. isn't correct, please

re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID); /*插入数据*/ printf(" ****** Name(10) Sex(M/F) Phone(11) Address(30)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s",friends[i].name,friends[i].sex,friends[i].phone,friends[i].a ddress,friends[i].post_num);

i++;

}

}

void Data_Delete() /*数据删除函数*/

{

int k,t=0;

char ID[5];

printf("\n\n Please enter the No. need to be deleted\n\n");

scanf("%s",ID);

for(k=0;k

{

if(strcmp(friends[k].num,ID)==0)

{

t++;

break;

}

}

if(t==0)

printf("\n\n The No. does not Exist!\n\n");

if(t>0)

{

for(;k

{

friends[k]=friends[k+1];

}

printf("\n\n Delete success!\n\n");

i=i-1;

}

}

void Data_Alter() /*修改函数*/

{

int k,t=0;

char ID[5];

printf("\n\n Please enter the No. to be Amended\n\n");

scanf("%s",ID);

for(k=0;k

{

if(strcmp(friends[k].num,ID)==0)

{

t++;

break;

}

}

if(t==0)

printf("\n\n The No. does not Exist!\n\n");

if(t>0)

{

strcpy(friends[k].num,ID);

printf(" ****** Name(10) Sex(M/F) Phone(11) Address(30)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s",friends[k].name,friends[k].sex,friends[k].phone,friends[k].a ddress,friends[k].post_num);

printf("\n\n Alter Success!\n\n");

}

}

void Data_Save() /*数据保存函数*/

{

int j;

fp=fopen("friend.txt","w");

for(j=0;j<=i-1;j++)

{

fwrite(&friends[j],sizeof(struct friend),1,fp);

}

printf("\n\n Save Success!\n\n");

}

void Exit() /*退出函数*/

{

char flag;

printf(" Save or Not? (Y/N)\n"); /*判断是否保存*/

do{

flag=getch();

switch(flag)

{

case'Y': /*保存*/

Data_Save();

break;

case'y': /*保存*/

Data_Save();

break;

case'N':break;

case'n':break;

}

}while(flag!='Y'&&flag!='y'&&flag!='N'&&flag!='n');

}

void main()

{char choose,yes_no;

Data_load();

do

{

Menu_Select();

choose=getch();

switch(choose)

{

case'1': Data_Input(); break; /*输入*/

case'2': Data_Show(); break; /*显示*/

case'3': Data_Search(); break; /*查找*/

case'4': Data_Alter(); break; /*修改*/

case'5': Data_Insert(); break; /*插入*/

case'6': Data_Delete(); break; /*删除*/

case'7': Data_Save(); break; /*保存*/

case'0': Exit(); break; /*退出*/

default : printf(" Error!\n");

}

if(choose=='0')

break;

printf(" Would you like to be continue? (Y/N)\n");

do

{

yes_no=getch();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

if(yes_no=='N'||yes_no=='n')

{

Exit();

break;

}

}while(yes_no!='Y'||yes_no!='y');

六、函数说明

本人所写函数为: Data_check , Data_Input, The_Size, Data_Show,main.

以下为各函数的功能说明,代码以及流程图:

Data_check:

本函数的功能是判断输入的编号是否以存在及格式是否正确.

首先定义一个整型形参,一个字符数组形参.

首先判断编号的首位是否为0,如果为0则整型形参赋值为1.反之没有动作,然后判断编号内是否含义字母及其他字符,如果有则整型形参自增,反之没有动作,

在使用strcmp判断输入的编号在原文件中是否以存在,如果存在则整型形参自增.

最后返回整型形参的值.

源代码:

/*检查通讯录中是否存在相同ID或ID输入格式错误*/

int Data_check(int k,char ID[5])

{

int j;

if(ID[0]=='0')

k=1;

for(j=0;ID[j]!='\0';j++)

{

if(ID[j]>'9'||ID[j]<'0')

k++;

}

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

k++;

}

return k;

}

流程图:

Data_Input:

首先判断储存是否已满,如果满了,则提示是否回到主菜单,如果没满,则提输入信息,然后调用Data_check函数,判断编号是否已经存在以及格式是否正确.如果均无误则提示是否继续输入信息,反之则重新输入编号直到编号无误为止.如果输入信息后,储存变满,则提示储存已满,不再提示是否继续输入.最后提示是否回到主菜单.

源代码:

void Data_Input() /*数据输入函数*/

{

char yes_no='1';

char ID[5];

int k=0;

if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

printf("

************************************************************************\n"); printf(" ******************* Add Address Book Information

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

printf("

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

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

}

for(;i<50;i++)

{

do

{

switch(yes_no)

{

case '1': /*如果输入为'1',则进行数据输入*/

printf(" ****** No.(4) Name(10) Sex(M/F) Phone(11) Address(25)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s%s",ID,friends[i].name,friends[i].sex,friends[i].phone,friends [i].address,friends[i].post_num);

Data_check(k,ID);

while(Data_check(k,ID)>0) /*检查输入的ID是否已存在,如果存在重新输入*/

{

printf("The No. already exists Or The No. isn't correct, please re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID);

if(i<49)

{

printf("\n\n Whether to be continue? Y(1)/N(0) \n\n");

yes_no=getch();

}

if(i>=49)

printf("\n\n Storage full!\n\n");

break;

case '0':

break;

default:

yes_no=getch();

}

}while(yes_no!='1'&&yes_no!='0'); /*如果输入的不是'1'或'0'则重新输入*/ if(yes_no=='0') /*如果输入'0'则退出输入函数*/

{

i++;

break;

}

}

}

流程图:

The_Size:

首先定义两个字符数组形参,一个整型变量.

首先利用strlen比较两个字符数组的长度,如果前者长于后者,整型变量赋值为1如果前者短于后者,整型变量赋值为-1,如果两者长度相等,则再利用strcmp比较两个字符数组的大小,如果前者大于后者,则整型变量赋值为1,如果前者小于后者,则整型变量赋值为-1,如果两者大小相等,则整型变量赋值为0.最后返回整型变量的值.

源代码:

int The_Size(char a[],char b[]) /*比较两个ID的大小*/

{

int j,t;

if((j=strlen(a)-strlen(b))>0) t=1;

if((j=strlen(a)-strlen(b))<0) t=-1;

if((j=strlen(a)-strlen(b))==0)

{ if(strcmp(a,b)>0) t=1;

if(strcmp(a,b)<0) t=-1;

if(strcmp(a,b)==0) t=0;

}

return t; }

流程图:

Data_Show:

首先调用The_Size函数再利用冒泡法对通讯录的信息根据编号进行排列.然后再对信

息进行输出,输出完一条信息后按空格停止打印,按其他任意键继续打印下一条.然后输出通

讯录中信息的条数,最后提示是否回到主菜单

源代码:

void Data_Show() /*数据输出函数*/

{ int j,k;

char m;

struct friend t;

printf("

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

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("

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

for(j=0;j

{ for(k=0;k

{ if(The_Size(friends[k].num,friends[k+1].num)==1)

{ t=friends[k];

friends[k]=friends[k+1];

friends[k+1]=t;}}}

for(j=0;j

{ printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,frien ds[j].sex,friends[j].phone,friends[j].address,friends[j].post_num);

m=getch();

if(m==' ')

break;}

printf("\n\n There are %d data in the book .\n\n",i);} 流程图:

main:

调用Menu_Selec函数打印出主菜单.利用switch实现对菜单功能的选择.利用do-while来实现功能选择是输入不正确的纠错.

源代码:

void main()

{char choose,yes_no;

Data_load();

do

{

Menu_Select();

choose=getch();

switch(choose)

{

case'1': Data_Input(); break; /*输入*/

case'2': Data_Show(); break; /*显示*/

case'3': Data_Search(); break; /*查找*/

case'4': Data_Alter(); break; /*修改*/

case'5': Data_Insert(); break; /*插入*/

case'6': Data_Delete(); break; /*删除*/

case'7': Data_Save(); break; /*保存*/

case'0': Exit(); break; /*退出*/

default : printf(" Error!\n");

}

if(choose=='0')

break;

printf(" Would you like to be continue? (Y/N)\n");

do

{

yes_no=getch();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

if(yes_no=='N'||yes_no=='n')

{

Exit();

break;

}

}while(yes_no!='Y'||yes_no!='y');

流程图:

七、程序调试

1.启动程序

2.输入数据

3.显示数据

4.查找数据

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语言程序设计试题答案

习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); }

B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6. D 7. D 8. A 9. C 10. D 6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是() A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4

C语言程序设计模拟试题1附答案

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。

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语言程序设计试题集与答案解析

一.填空 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语言程序设计期末考试试题(含答案)

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语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

c语言程序设计期末试题A(含答案)

c语言程序设计期末试题A(含答案) 一、单项选择题(选择一个最佳答案,每题2分,共20分) 1.一个C程序的执行是从(A )。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.下列选项中,不能用作标识符的是(D )。 A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3.以下定义语句中正确的是( C)。 A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a; 4.设有以下定义:#define d 2 int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是(B)。 A) a++; B) b++ C) c++; D) d++; 5.以下4个选项中,不能作为一条C语句的是(D)。 A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2; 6.有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( C)。 A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b; 7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。 A) p=1; B) *q=2; C) q=p; D) *p=5; 选D. A.p是一个指针,不能给它赋一个整型的值1 B.*q仍然是一个指针,*q就是p.所以也不能给它赋一个整型的值. C.q=p;q是个二级指针,p是一级指针,不能把一级指针赋给二级指针. *p=5,即给n赋值为5,正确.

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

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

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语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言程序设计期末考试选择题题库

第一章 1、一个C程序可能出现的错误有(A) A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束 5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double

3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab' D.'\n' 4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:char a;int b;float c;double d; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.long int C.int D.float 7、若有定义:double x=1,y; 执行语句y=x+3/2;,则y的值是(B) A,1 B,2.0 C,2 D,2.5 8、设int a=1,b=2;以下选项中不正确的语句是(B) A.a=a+b B.a*3=3 C.a+=3 D.a/=1 9、在C语言中,要求参加运算的数必须是整数的运算符是(C) A.* B./ C.% D.++

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

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

C语言程序设计试题 (2008 /2009 学年第二学期) 一.选择题(满分30分,每题2分) 1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C语言中函数返回值的类型由 D 决定的。 A. return语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

c语言程序设计选择题1

1、在C语言中,合法的字符常量是()。 A.'字' B."A" C."ABC" D.'\x41' 2、下面叙述正确的是()。 A.程序中必须包含有输入语句 B.变量按所定义的类型存放数据 C.main函数必须位于文件的开头 D.每行只能写一条语句 3、错误的叙述是()。 A.一个C语言源程序可由一个或多个函数组成 B.若一条语句较长,也可分写在下一行上 C.C程序必须包含一个main()函数 D.构成C语言源程序的基本单元是算术表达式 4、()是关于C语言数据类型的正确叙述。 A.变量必须先定义后使用 B.不允许使用空类型 C.枚举类型不是基本类型 D.数组并不是构造类型 5、 main( )函数的位置()。 A.必须在自定义函数前面 B.可以在自定义函数后面 C.必须位于程序的最前面 D.必须在自定义函数后面 6、 C语言函数体由()括起来。 A.< > B.( ) C.{ } D.[ ] 7、()是不正确的叙述。 A.注释说明只能位于一条语句的后面 B.C源程序的基本组成单元是函数 C.C源程序可由一个或多个函数组成 D.每条语句最后必须有一个分号 8、一个C语言源程序是由()。 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 9、结构化程序设计的三种基本结构是()。 A.函数结构、判断结构、选择结构 B.平行结构、嵌套结构、函数结构 C.顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构 10、 C源程序的调试是指对源程序进行()。 A.录入与编辑 B.查错与编译 C.查错与排错 D.连接与运行 1、 C语言中,可将一系列语句置于一对()之间从而构成复合语句。 A.尖括号"< >" B.圆括号"( )" C.花括号"{}" D.方框号"[ ]" 2、构成C源程序的基本单位是()。 A.语句 B.变量 C.运算符 D.函数 3、以下叙述中正确的是()。 A.C源程序中注释部分可以出现在程序中任意合适的地方 B.一对花括号"{}"只能作为函数体的定界符 C.C源程序编译时注释部分的错误将被发现 D.构成C源程序的基本单位是函数,所有函数名都可以由用户命名 4、下面叙述正确的是()。 A.每行最多只能写两条语句 B.程序中必需含有自定义函数 C.main()函数必须位于源程序文件的开头 D.所有语句都必须以分号";"结束 5、下面叙述错误的是()。 A.若一条语句较长,可分写在下一行或多行上

C语言程序设计

《C程序设计》课程设计任务书 计算机科学与技术、通信、自动化、电子信息技术等专业 一. 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二. 课程设计要求 1. 分析课程设计题目的要求 2. 写出程序流程图 3. 编写程序代码及重要的解释,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 4. 设计完成后提交课程设计报告 三. 课程设计报告的内容 1. 课程设计名称、班级号、学号、学生姓名和课程设计起止日期 2. 课程设计目的和要求 3. 课程设计任务内容 4. 程序流程图 5.软件使用说明 6. 课程设计心得与体会 7. 附录1:参考文献 8. 程序清单(带有较详细的注释)请上传网络课堂。 四. 设计题目: 题1. 设计一个多功能计算程序(计算器模拟) 实现功能: 具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’退出。 例如:输入:2 +5 输出:7

题2. 洗牌和发牌模拟 用随机数开发一个可用来实现具体的玩牌游戏中的洗牌和发牌的模拟程序。 实现功能: 1)洗牌功能 2)发牌功能: 54张牌,随机发给4个玩家,要求显示各玩家及底牌. 3)设计模拟4副牌的程序 题3. 学生成绩文件管理 现有3个班学生的C语言课程成绩,请以班级为单位对学生的成绩按从高到低的顺序排序,并将排序后的结果存入文件中。必须采用指针和函数。 提示:定义三个一维数组分别存放三个班的成绩,排序方法可以采用冒泡法或其它方法,在函数中实现数组的排序,在主函数中调用函数。 题4. 读一个文件把各记录读入链表各结点中;对链表进行添加\删除操作;把链表的每个结点元素存储在该文件中. 每个学生需独立完成,18周末时提交源程序与课程设计报告。 五、评分方法和标准 运行每个同学的程序、审阅课程设计报告,根据下面的标准给每位同学评定课程设计考试成绩。 1程序调试成功(60%) 2知识点运用得当(10%) 3 程序设计合理(20%) 4. 课程报告撰写准确、无误(10%) 六、时间安排 C语言课程设计时间安排 17周 18周

相关文档
最新文档