2014年9月份考试C语言程序设计第二次作业

时间:2019-05-14 17:37:00下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《2014年9月份考试C语言程序设计第二次作业》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《2014年9月份考试C语言程序设计第二次作业》。

第一篇:2014年9月份考试C语言程序设计第二次作业

2014年9月份考试C语言程序设计第二次作业

一、单项选择题(本大题共100分,共 40 小题,每小题 2.5 分)

1.下面程序

fun3(int x)

{

static int a=3;

a +=x;return(a);

}

main()

{

int k=2, m=1, n;

n=fun3(k);

m=fun3(m);

printf(“%dn”,n);

}的输出是().A.3 B.4 C.5 D.9

2.下面的程序

main()

{

int x=3;

do

{

printf(“%dn”,x-=2);

}

while(!(--x));

}

().A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环

3.以下叙述中正确的是().A.预处理命令行必须位于源文件的开头 B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示 D.宏替换不占用程序的运行时间

4.以下叙述中正确的是().A.局部变量说明为static存储类,其生存期将得到延长 B.全局变量说明为static存储类,其作用域将被扩大 C.任何存储类的变量在未赋初值时,其值都是不确定的 D.形参可以使用的存储类说明符与局部变量完全相同

5.下列语句中,符合C语言语法的赋值语句是().A.a=7+b+c=a+7 B.a=7+b++=a+7 C.a=7+b,b++,a+7 D.a=7+b,c=a+7

6.下面程序

main()

{

int y=9;

for(;y>0;y--)

{/ 6

if(y%3==0)

{

printf(“%d”,--y);

continue;

}

}

} 的输出是().A.741

B.852

C.963

D.875421

7.下面程序

main()

{

int x=32;

printf(“%dn”,x=x<<1);

}的输出是().A.100 B.160 C.120 D.6

48.以下程序的输出结果是().#include main(){ printf(“%dn”,NULL);}

A.不确定的(因变量无定义)

B.0 C.-1 D.19.若k是int型变量,且有下面的程序片段

k=-3;

if(k<=0)printf(“####”)else printf(“&&&&”);

上面程序片段的输出结果是().A.#### B.&&&& C.####&&&& D.有语法错误,无输出结果

10.下面的程序

main()

{

int x=3,y=0,z=0;

if(x=y+z)printf(“* * * *”);

else printf(“####”);

}

().A.有语法错误不能通过编译 B.输出* * * *

C.可以通过编译, 但是不能通过连接, 因而不能运行 D.输出####

11.+以下定义语句中正确的是().A.char a=''''A''''b=''''B''''B.float a=b=10.0C.int a=10,*b=&a

D.float *a,b=&a

12.设有如下一段程序

int *var,ab;

ab=100;

var=&ab;

ab=*var+10;

执行下面的程序段后,ab的值为().A.120 B.110 C.100 D.90

13.若x和y都是int型变量,x=100、y=200,且有下面的程序片段 printf(“%d”,(x,y));上面程序片段的输出结果是().A.200 B.100 C.100 200 D.输入格式符不够,输出不确定的值

14.若有以下说明和定义

union dt

{

int a;

char b;

double c;

}

data;

以下叙述中错误的是().A.data的每个成员起始地址都相同 B.变量data所占的内存字节数与成员c所占字节数相等

C.程序段:data.a=5;printf(“%fn”,data.c);输出结果为5.000000D.data可以作为函数的实参

15.设有如下枚举类型定义

enum language

{

Basic=3,Assembly=6,Ada=100,COBOL,Fortran

}

枚举量Fortran的值为().A.4 B.7 C.102 D.10

316.以下叙述中正确的是().A.C语言的源程序不必通过编译就可以直接运行 B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C语言程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编译

17.在一个C程序中()

A.main函数必须出现在所有函数之前 B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后 D.main函数必须出现在固定位置

18.以下叙述中错误的是().A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

19.有以下程序

main()

{

char s[]=“Yesn/No”,*ps=s;puts(ps+4);

*(ps+4)=0;puts(s);

}

程序运行后的输出结果是().A.n/NO Yes /NO B./NO YesC./NO Yes /NO D./NO Yes

20.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是().A.char s[10]=“abcdefg” B.char t[]=“abcdefg”,*s=t

C.char s[10];s=“abcdefg” D.char s[10];strcpy(s,“abcdefg”)

21.C语言中的标示符只能由字母、数字和下划线三种字符组成,且第一个字符()

A.必须是字母 B.必须是下划线 C.必须是字母或下划线

D.可以是字母或数字或下划线中的任意一种

22.以下程序段给数组所有的元素输入数据,请选择正确答案填入:

#include main()

{

int a[10],i=0;

while(i<10)scanf(“%d”,());

}

A.a+(i++)B.&a[i+1]C.a+ID.&a[++i]

23.C语言中while和do-while循环的主要区别是()

A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句

24.下面四个选项当中,均是关键字的是()

A.auto,enum,includeB.switch,typedef,continue

C.signed,union,scanfD.if,struct,type

25.设ch是char型变量,其值为A,且有下面的表达式 ch=(ch>=''A''&&ch<=''Z'')?(ch+32):ch 上面表达式的值是().A.B.aC.ZD.z

26.以下叙述中正确的是().A.用C程序实现的算法必须要有输入和输出操作 B.用C程序实现的算法可以没有输出但必须要输入C.用C程序实现的算法可以没有输入但必须要有输出 D.用C程序实现的算法可以既没有输入也没有输出

27.有以下程序:

main()

{

int s=0,a=1,n;

scanf(“%d”,&n);

do {s+=1;a=a-2;

}

while(a!=n);

printf(“%dn”,s);

}

若要使程序的输出值为2,则应该从键盘给n输入的值是().A.-1B.-3C.-5D.0

28.有以下程序

main()

{

int c=35;

printf(“%dn”,c&c);

}

程序运行后的输出结果是().A.0B.70C.35D.129.有以下程序

main()

{

int a[]={1,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p<=“" 程序运行后的输出结果是(=”“ }=”“ printf(?%d,?,*p);=”“>

A.1,2,3,4,5,6,7,8,9,0

B.2,3,4,5,6,7,8,9,10,1

C.0,1,2,3,4,5,6,7,8,9

D.1,1,1,1,1,1,1,1,1,1

30.正确的自定义标识符是()

A.a=2B.a+bC.nameD.default

31.有以下程序:

#define f(x)x*x main()

{

int i;

i=f(4+4)/f(2+2);

printf(”%dn“,i);

}

执行后输出的结果是().A.28B.22C.16D.432.下面函数

int fun1(char*x)

{

char *y=x;

while(*y++);

return(y-x-1);

}的功能是().A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串y

D.将字符串x连接到字符串y后面

33.以下程序运行后的输出结果是()

fun(int a, int b)

{

if(a>b)return a;

else return b;

}

main()

{

int x=3, y=8, z=6, r;

r=fun(fun(x,y), 2*z);

printf(”%dn“, r);

}

A.3B.6C.8D.1

234.已定义c为字符型变量,则下列语句中正确的是().A.c=''97B.c=”97“;C.c=97;D.c=”a“;''

35.若变量已正确定义并赋值,下面符合C语言的表达式是().A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b

36.s1和s2已正确定义并分别指向两个字符串.若要求:当s1所指串大于s2所指串时,执行语句S;,则以下选项中正确的是().A.if(s1>s2)SB.if(strcmp(s1,s2))SC.if(strcmp(s2,s1)>0)S

D.if(strcmp(s1,s2)>0)S

37.以下选项中属于C语言的数据类型是()

A.复数型B.逻辑型C.集合型D.双精度型

38.C语言中,long类型的数据占字节数为()A.1 B.2 C.4 D.8

39.有以下程序

main()

{

int a=1,b;

for(b=1;b<=10;b++)

{

if(a>=8)break;

if(a%2==1){a+=5;continue;

}

a-=3;

}

printf(”%dn",b);

}

程序运行后的输出结果是().A.3B.4C.5D.6

40.编辑程序的功能是()

A.建立并修改程序B.将C源程序编译成目标程序C.调试程序

D.命令计算机执行指定的操作

答案:

一、单项选择题(100分,共 40 题,每小题 2.5 分)

1.C 2.B 3.D 4.A 5.D 6.B 7.D 8.B 9.D 10.D 11.C 12.B 13.A 14.C 15.C 16.B

17.B 18.C 19.B 20.C 21.C 22.A 23.A 24.B 25.B 26.C 27.B 28.C 29.A 30.C 31.A 32.A 33.D 34.C 35.B 36.D 37.D 38.C 39.B 40.A

第二篇:C语言程序设计--大作业

C语言程序设计大作业

编写程序,实现单链表的插入、删除、输出、查找、统计以及销毁功能。

单链表的每个结点存储一名学生的信息,包括:学号、姓名、性别、年龄、三门课程(高数、英语、C语言)的成绩、三门功课的平均分。

结构体类型声明如下: typedef struct student {

char sno[8];

char name[20];

char sex;

int age;double score[3];double avg;

struct student *next;} STUDENT, *PSTUDENT;

要求:

⑴一律使用 STUDENT 声明学生结构体的变量,一律使用 PSTUDENT 声明指向学生结构体的指针变量

⑵程序运行过程中要有菜单提示,菜单如下:

*************************************************************** *

1.Insert a student

* *

2.Delete a student

* *

3.Display the link list

* *

4.Display excellent students

* *

5.Search a student by the name

* *

6.Display the average score of three courses * *

0.Exit the program

* ***************************************************************

“Insert a student”:插入一个学生记录,要求按平均分从高到低插入 “Delete a student”:删除指定学号的学生 “Display the link list”:输出单链表中所有学生的信息 “Display excellent students”:输出链表中三门功课平均成绩高于85分(含85分)的学生信息 “Search a student by the name”:根据输入的姓名,输出链表中相应学生的信息 “Display the average score of three courses”:输出链表中所有学生的高数平均分、英语平均分以及C语言平均分 “Exit the program”:销毁单链表,结束程序运行

第三篇:C语言程序设计考试大纲

《C语言程序设计》考试大纲

Ⅰ考试性质

普通高等学校本科插班生招生考试是由专科毕业生参加的选拔性考试。高等学校根据考生的成绩,按已确定的招生计划,德、智、体全面衡量,择优录取。因此,本科插班生考试应有较高的信度、效度、必要的区分度和适当的难度。

本大纲适用于所有需要参加《C语言程序设计》考试的各专业考生。Ⅱ考试内容

总体要求:考生应按本大纲的要求了解或理解“C语言程序设计”中的数据类型、运算符与表达式、顺序结构、选择结构、循环控制、数组、函数、指针、预处理命令、结构体与共用体、文件的基本概念。熟练掌握程序设计的基本方法和C语言本身的语法、语句和使用方法。掌握一般问题的分析思路、数据存储结构表达及建立在存储结构之上的程序设计方法,具备初步运用C语言解决问题的程序设计能力;能熟练地阅读、理解和编制简单的C程序;具备进一步学习计算机各专业后续课程的能力和基础。

一、数据类型、运算符与表达式

⒈ 考试内容

⑴关键字与标识符的概念:关键字的含义,标识符的定义,常量和变量的分类。

⑵数据类型:数据类型的含义、特点,不同类型常量的表达,不同类型变量的定义、赋初值方法。

⑶运算符:各类运算符的含义、优先级,各类表达式的表示方法、运算特点、值的类型和计算方法,各类公式的表达式描述和各类表达式的混合运算。

⒉ 考试要求

⑴理解关键字与标识符的概念、应用特点,理解数据类型的含义和常量、变量的分类。⑵掌握各数据类型的含义、特点,不同类型常量的表达,不同类型变量的定义和赋初值方法。

⑶熟练掌握各类运算符的含义、优先级,各类表达式的表示方法、运算特点、值的类型和计算方法。能够进行各类公式的表达式描述和各类表达式的混合运算。

二、顺序结构程序设计 ⒈ 考试内容

⑴输入输出:常用的输入输出函数,基本的输入输出格式。⑵赋值语句:赋值语句功能和表达方法。

⑶顺序程序设计:编写顺序结构语句及程序。

⒉ 考试要求

⑴了解数据输入输出的概念以及在C语言中的实现方法。

⑵掌握赋值语句表达方法;掌握两组输入输出函数的格式、表达方式和使用功能、特点。

⑶熟练掌握顺序程序设计的思想和编程方法,能够熟练编写简单问题的程序并上机调试。

三、选择结构程序设计 ⒈ 考试内容

⑴条件的表达方式:算术表达式、关系表达式、逻辑表达式,各种运算结果的表达与判别。

⑵条件语句:if语句、if~else语句、else~if结构以及switch和break语句的使用方法。⑶选择结构程序设计:编写带有选择结构的语句及程序。⒉ 考试要求

⑴掌握问题中条件的表达方式(关系表达式、逻辑表达式)和运算结果。

⑵熟练掌握编程中条件的描述方法(用不同格式的if语句或switch语句)和使用方法,能够进行各种条件下的问题的程序设计。

四、循环程序设计 ⒈ 考试内容

⑴循环语句: while、do~while和for语句的格式、循环条件的设置以及在循环结构中使用break和continue语句。

⑵循环程序设计:编写带有循环结构语句及程序。

⒉ 考试要求

⑴了解循环的概念,解决语句重复执行的方法。

⑵理解各种实现循环的语句的执行过程、执行步骤和相关参数量的变化情况,理解break和continue的使用形式和理由。

⑶掌握循环语句的格式和应用特点,掌握循环程序设计的方法。

五、数组 ⒈ 考试内容

⑴数组的概念:数组的概念、一维数组和二维数组。

⑵数组的使用:数组的定义、数组的初始化、数组元素的引用,数组的一般编程方法。⒉ 考试要求

⑴了解数组的基本概念。

⑵掌握不同类别数组的特点,掌握数组的定义、初始化和数组元素引用方法;掌握数组的实际应用方式、特点和程序设计方法。

六、函数 ⒈ 考试内容

⑴函数:函数定义的格式,包括类型、参数及返回值。⑵存储类别:存储类别的含义、使用方法。

⑶函数的运用:定义函数、调用函数、递归函数。⒉ 考试要求

⑴理解一般问题的解决方法和程序的结构化、模块化设计思想,理解函数的调用方法,理解变量的数据类型、存储类别,理解内部函数与外部函数的含义。

⑵掌握函数定义的一般格式,掌握形式参数的表达方式,函数返回值类型和返回值的表达方式,掌握函数调用的方法、特点和不同调用形式(嵌套调用、递归调用),掌握局部变量、全局变量的定义方法和声明形式。

七、指针 ⒈ 考试内容

⑴指针概念:指针的概念,指针的类型、指针的分类。

⑵指针的运用:运用指针处理变量、数组、字符串、函数等。⒉ 考试要求

⑴理解指针的概念、特点,理解指针的分类、指针的数据类型描述。

⑵掌握指针的含义、不同类型指针与所指变量、数组、字符串、函数等的内在联系。

八、预处理命令 ⒈ 考试内容

⑴预处理概念:宏的含义,文件包含的含义。

⑵预处理的运用:无参宏和有参宏,系统头文件的加载。⒉ 考试要求

⑴理解预处理的含义和理由,理解文件包含的含义和宏的含义。⑵区分宏与函数的异同点;掌握文件包含命令的使用方法。

九、结构体与共用体 ⒈ 考试内容

⑴结构体与共用体的概念:结构体的含义,共用体的含义。

⑵结构体与共用体的运用:结构体与共用体的类型声明、初始化和引用。⒉ 考试要求

⑴了解C语言基本类型与构造类型的含义,了解类型声明与变量等定义的区别。

⑵掌握结构体、共用体、枚举类型的声明方法和相应变量等的定义、初始化、引用方法。

十、文件 ⒈ 考试内容

⑴文件的概念:文件的定义、分类和特点。

⑵文件的基本操作:文件打开与关闭、文件读/写操作,出错检测。⒉ 考试要求

⑴了解文件的含义、分类和特点。

⑵理解文件指针的使用方法,掌握文件打开与关闭、文件读写、文件定位和出错检测函数的使用方法。

⑶掌握不同问题使用文件的定义和操作方法。Ⅲ 考试形式及试卷结构

一、考试形式

闭卷、笔试。考试时间为120分钟,试卷满分为100分。

二、试卷内容比例

数据类型、运算符与表达式

约占10% 顺序结构程序设计、选择结构程序设计、循环程序设计、数组

约占60% 函数、指针

约占15% 预处理命令、结构体与共用体、文件

约占15%

三、试卷题型比例 正误判断题

占10% 单项选择题

占40% 综合题(包括写程序结果、改正程序错误和程序填空等)

占30% 编程题

占20%。

四、试卷难易度比例

试题按其难度分为容易、中等题、难题,三种试题分值的比例为4:4:2 Ⅳ.题型示例

一、正误判断题(每题1分,共10分)1. 算法就是程序。

二、单项选择题(每题2分,共40分)1.下列数据中,为字符常量的是________。A)'My' B)“B” C)Yours D)'K'

三、综合题(每题10分,共30分)1.阅读程序写结果

#include

#define NULL 0

struct student{

long num;

float score;

struct student *next;

};

void main()

{

struct student a,b,c,*head, *p;

a.num=1;a.score=90.0;

b.num=2;b.score=95.0;

c.num=3;c.score=70.0;

head=&a;

a.next=&b;

b.next=&c;

c.next=NULL;

p=head;

do {

printf(“%d %5.1fn”,p->num,p->score);

p=p->next;

} while(p!=NULL);}

四、编程题(每题10分,共20分)

1.计算1至10000之间不能被3或5整除的整数之和。Ⅴ.参考书目

《C程序设计》(第三版),谭浩强编,清华大学出版社,2005年7 月 第3版。

第四篇:C语言程序设计考试系统

《C语言程序设计》考试系统

C language progamme design examination system

马国富

刘波

(安阳工学院 计算机工程系,河南 安阳455000)

Ma GuoFu,liu bo

(Department of Computer Engineering,Anyang Institute of Technology,Anyang 455000)

一:摘要

这一考试系统是一种计算机辅助教学软件,它包括教学模式,练习模式,考试模式。采用调用数据库的方式打开,可以实现随机选题和指定选题,而不是固定的试题。解决了由于教材更新和题库更新导致教学软件过时。大大提高了软件的利用价值,打破了教学软件内容的固化,其次三种工作模式极大地拓宽了软件的使用范围,不再是单一的教师教学软件或学生考试软件。可根据教学需要灵活地选择不同模式,同时少作修改即可用于其它课程。

系统解决了在多媒体教学中出现的模式僵化,内容固化的问题。更新教学内容只需建立一个新的数据源实现连接即可。

Abstract

The test system of the principle is a Computer extended education software, and this course is also the compulsory course in High etc.school.This system include Teaching mode.Practice mode Examination mode.You can use database open the examination database That is to say the content is up to you or at random.It is the revolution of test system This is the main reason we develop it.二:关键词

考试系统、多媒体技术、数据源、连接数据库

keyword examination system、multimedia technology、data soure、connection of database 三:课题研究的意义和目的

安阳工学院计科系毕业论文 2 3.1研究意义

现在,多媒体技术日趋成熟,多媒体系统以其能输出精彩的图形和图像、美妙的声音、动感的画面赢得了用户和社会各界广泛的关注和应用。如果把按传统考试方式同现代化的多媒体技术相结合,并且用多媒体著作工具及其它多媒体技术,编制一套符合高校考试需求的系统及其配套的多媒体教学软件,利用多媒体技术生动、直观、形象展示信息的特点,辅助教师授课和学生进行考试,尤其对部分有限制性的实验环节,可利用活动视频技术进行展示,这将会解决一系列目前存在的问题。总之,该课题是在计算机辅助教学及考试上进行的一次积极有意义的尝试,为其他实践性较强的课程进行多媒体辅助教学开辟一条新的路子,具有一定的理论和现实意义。

3.2目 的

传统的考试手段主要依靠有纸试卷,几乎没有可重用性。本课题将实现:用计算机辅助考试系统,把多媒体生动、直观的显示出来,使学生不再将考试视为一种枯燥无味的东西,提高了考试效果,使学生在一种愉悦的心情中进行考试,把枯燥的重复变为充满乐趣、具有启发性的考试过程,使学生能比较全面的学习知识,掌握技能,达到素质教育的要求。

四:系统流程图设计

4.1 初始化流程设计

在使用Authorware创建任何多媒体项目的时候,都应该先设置当前项目文件的窗口大小,将其设置为“800×600”,然后选择“演示居中屏幕”,同时取消对“显示标题栏”和“显示菜单栏”复选框的选择。

4.2 主界面的设计

本界面采用了Photoshop7.0图形图像处理软件来绘制。为了避免界面的单调和呆板,用蒙版和滤镜技术加以美化。该界面把Photoshop中的图层技术、图层蒙版技术、文字效果及滤镜等功能完美的结合了起来。并且在底部设置了一个Flash动画,增加视觉效果。

4.3背景音乐的交互控制

该多媒体教学以MIDI作为背景音乐,背景音乐的交互控制包括背景音乐的随机选曲播放、停止等功能,另外当该教学程序处于活动状态时,能够随时调整背景音乐和讲解声音的大小及比例,让使用者在一种轻松悦耳的环境中考试(调出WINDOWS的音量控制实现),还能够暂停背景音乐,当再次进入活动状态时则能重新播放背景音乐。

为了充分考虑用户计算机的不同配置情况,首先利用BUDAPI.U32的BASOUNDCARD函数判断用户机器是否已经安装了声卡,如果已经安装则执行背景音乐播放,否则不允许播放任何背景音乐操作.安阳工学院计科系毕业论文 3 程序如下:

IF BASOUNDCARD()THEN MIDI:=1 TEST(MIDI,MIDILOOP(FILELOCATION^”MUSICMUSIC-”^RANDOM(1,5,1)^”.MID”),STOPMIDI())END IF 软件中的背景音乐交互控制是通过交互响应来实现的。在程序执行过程中,用户始终可以通过按钮控制背景音乐的播放与暂停。在计算图标“播放音乐”后添加一交互图标并命名为“音乐控制”,并在交互图标右边添加三个计算分支。设置“STOP/PLAY”分支为按钮响应交互,其功能是实现对背景音乐的控制。由于在整个程序执行过程中它都是有效的,因此须设置其为永久按钮,即选择“PERPETUAL”属性选项,同时设置“ACTIVE IF”条件为:BASOUNDCARD(),即检测到用户没有安装声卡的情况下该按钮及响应分支无效。

4.4内容的导航设计

该多媒体教学涉及内容繁多,不仅包括文本、图片、声音和动画,而且还有其它多媒体工具与Authorware 配合,同时,还把视频文件导入,以增加实用性。为使用户操作简单方便,设计了合理的教学内容导航。主文件与各章节之间的导航设计根据结构规划中的该章节内容的栏目划分,在流程设计中为这些栏目设计了导航,如图1为主程序内容导航的设计流程图。

图1 主程序内容导航

这样的流程设计使整个主程序结构清晰,可读性强。由于该文件结构是主-分结构,即主文件调用各章节模块文件的方式,因此在主文件的章节内容中实际存放的是一个起链接桥梁作用的调用脚

安阳工学院计科系毕业论文 4 本,而具体的考试试题题型内容则放在各章节的模块文件内。

4.5各模块的内容流程设计

图中的考试模式、练习模式、教学模式及退出系统这四部分主要程序流程图如下图

2、图

3、图

4、图5所示。

图2

安阳工学院计科系毕业论文 5

图3

图4

图5

安阳工学院计科系毕业论文 6 看每题的回答情况.最后回到选题主界面,并把学生所做的答案成绩保存到数据库中。

当用户在主界面中,选择了“考试模式”后,系统就会进入到登录界面系统会提示输入用户名和密码,当输入后,点击“确定”后,系统将会进入到题型选择界面。在提示框中输入用户名和密码,我们点击“确定”后,就会进入到正式的单选题型界面中,选择“单选题”单击。

C语言程序设计考试系统的选择题从数据库中取出选择题,在一个界面上显示。利用三个热区域交互按钮“上一题”“下一题,”“完成”,按钮和四个热区域设置计算图标用来记录学生所选择的答案。在学生选择“完成”后,弹出学生做题的情况界面,然后回到选题主界面,并把学生所做的答案成绩保存到数据库中。

5.1“未命名”用来擦除以前的图像

5.1.1 打开“未命名”的属性,进入“未命名”的属性窗口。

5.1.2在“属性窗口”中单击擦除标签在设置过渡效果进行设置 5.1.3单击“确定”按钮

5.2 设置“单选界面”插入一个图像

5.2.1双击“单选界面”图标进入显示图标窗口

5.2.2单击 绘图工具箱 图标进行绘制一个和窗口矩形一样大的矩形

5.2.3设置矩形的颜色为“绿色”

5.2.4单击显示图标窗口的关闭按钮,关闭保存对“单选界面”的设置 5.3 设置交互“进入”

5.3.1在交互图标的右边拖放一个群组“单选” 5.3.2设置单选的热区为“按钮“ 5.3.3单击确定后,双击“选择”。

5.3.3.1“未命名”用来擦除上次运行的图形 5.3.3.2在“打开数据库”的输入如下源程序:

安阳工学院计科系毕业论文 7 hint0:=“您的数据库没有连接上......”--显示连接数据库的信息 title:=“数据库连接....” ODBChandle:=ODBCOpen(WindowHandle,“",”database“,”“,”“)--得到数据源

getrecord:=”select count(sequence)from erigister“--得到记录的个数 record:=ODBCExecute(ODBChandle,getrecord)if ODBChandle=0 then--测试连接数据库是否连接成功 MessageBox(WindowHandle,hint0,title,17)end if ODBCClose(ODBChandle)ODBChandle:=ODBCOpen(WindowHandle,”“,”database“,”“,”“)if ODBChandle=0 then MessageBox(WindowHandle,hint0,title,17)end if sqlstring1:=”select ssdb from erigister where sequence=“^record^”“-从表中选择单选库表题 ssdatabase:=ODBCExecute(ODBChandle,sqlstring1)getrecord:=”select count(sequence)from “^ssdatabase^”“ record:=ODBCExecute(ODBChandle,getrecord)--ssdb数据库的记录个数,以便产生随机数 sssum:=0 number1:=1 sui:=[] sui[1]:=Random(1,record,1)--下面程序用来产生一个随机数不能出现相同的题目 i:=2 repeat while i<=record flag:=0 repeat while flag=0 sui[i]:=Random(1,record,1)flag1:=0 repeat with p:=1 to i-1 if sui[i]=sui[p] then flag1:=1 end repeat if flag1=0 then flag:=1 end repeat i:=i+1 end repeat

5.3.3.3 在“做选择的背景”显示图标中设计单选题的界面如上图5.4 5.3.3.4 在“数据库的操作”中输入如下代码:在这里,我们就要实现对数据库的随机读取和跟踪答案的长短来选择界面

x:=0 ran:=sui[number1] result:=”“ record1:=Number(record)

安阳工学院计科系毕业论文 8 record:=record1--得到记录的个数

sqlstring1:=”select topic from “^ssdatabase^” where sequence=“^ran^”“分别得到选择题各项 sqlstring2:=”select a from “^ssdatabase^” where sequence=“^ran^”“ sqlstring3:=”select b from “^ssdatabase^” where sequence=“^ran^”“ sqlstring4:=”select c from “^ssdatabase^” where sequence=“^ran^”“ sqlstring5:=”select d from “^ssdatabase^” where sequence=“^ran^”“ sqlstring6:=”select result from “^ssdatabase^” where sequence=“^ran^”“ get1:=ODBCExecute(ODBChandle,sqlstring1)--get1得到选择题目内容 get2:=ODBCExecute(ODBChandle,sqlstring2)--get2得到选择项A内容 get3:=ODBCExecute(ODBChandle,sqlstring3)--get3得到选择项B内容 get4:=ODBCExecute(ODBChandle,sqlstring4)--get4得到选择项C内容 get5:=ODBCExecute(ODBChandle,sqlstring5)--get5得到选择项D内容 get6:=ODBCExecute(ODBChandle,sqlstring6)--get6得到选择题的答案 inputa:=1--用来设置热区域的激活条件

5.3.3.5 空“操作”用来设置跳转标志

5.3.3.6

在交互图标右边拖入四个热区域

在计算图标中从左到右的四个计算图标中输入: result:=”A“ result:=”b“ result:=”c“ result:=”d"在交互属性中设置激活条件为inputa=1: ,鼠标指针设置为标准鼠标指针,其它的为默认设置.其中result变量用来记录用户所选的答案.5.3.3.7拖一个交互图标“未命名”在它的右边拖两个计算图标为“上一题”和“下一题”,再拖一个群组“完成”放在“下一题”右边,设置热区为按钮。在“上一题”的激活条件中输入number1>1,鼠标指针设置为:标准的鼠标指针。在“下一题”的激活条件中输入:number1

六 结束语

根据对教师上课时课堂练习的分析,开发出该考试系统,主要是能够方便课堂练习,同时还可用于期中期末测试,该系统主要是针对《C语言程序设计》课程来设计的。对该系统做简单修改,即可用于其它课程。

参考文献

专著:王嘉宁 朱隽著 《Photoshop7.0中文版新概念百例》[M] 中国水利水电出版社 2004年4月 专著:龚祥国主编 《Photoshop图像处理实用教程》[M] 科学出版社 2002年 2月

专著: 王龙 金海主编 《Flash MX实战入门新概念》[M] 中国水利水电出版社 2005年5月 专著: 李恒著《Authorware 6.0多媒体实例大制作》[M] 冶金工业出版社 2002 年4月 专著: 袁海东著《Authorware 7.0教程 》[M] 电子工业出版社 2004年9月 专著: 郝蕾蕾著 《Authorware课件制作》[M] 中国水利水电出版社 2001年7月

第五篇:C语言程序设计

1.Problem A: Hello world!Description Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。

Input 无

Output 请输出: Hello Da_min, Hello Er_min, Hello Xiao_ming!

Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!

HINT 请注意换行符

Append Code #include int main(){

printf(“Hello Da_min,n”);

printf(“Hello Er_min,n”);

printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圆的面积和周长 Description 从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。

Input 输入一个浮点型数据,有效数字不会超过十进制的6位。

Output 输出为两行。

第一行为圆的面积,第二行为圆的周长,格式见sample。

Sample Input 3

Sample Output Area: 28.260000 Perimeter: 18.840000

HINT 了解浮点类型的输入、输出和算术运算符

Append Code 法一

#include int main(){ double r,p,s;scanf(“%lf”,&r);p=2*3.14*r;s=3.14*r*r;printf(“Area: %lfn”,s);printf(“Perimeter: %lfn”,p);} 法二

#include #define pi 3.14 int main(){

double r;

scanf(“%d”,&r);

printf(“Area: %lfn”,pi*r*r);

printf(“Perimeter: %lfn”,2*pi*r);

}

3.Problem C:平均值 Description 求3个数的平均值。

Input 输入只有一行,为3个较小的整数。

Output 输出为这3个整数的平均值,保留3位小数。

Sample Input 1 2 3 Sample Output 2.000

HINT 注意除法运算对整型数据和浮点型数据是不一样的。

Append Code #include int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%.3lf”,(a+b+c)/3.0);}

4.Problem D: 求字符的值 Description 从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。

Input 输入为3个字符。

Output 输出为3行。

每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。

Sample Input 0 A

Sample Output 048 060 030 032 040 020 065 101 041

HINT 了解字符值的存储和整型的关系。

Append Code #include int main(){ char a,b,c;scanf(“%c%c%c”,&a,&b,&c);printf(“%.3d %.3o %.3xn”,a,a,a);printf(“%.3d %.3o %.3xn”,b,b,b);printf(“%.3d %.3o %.3xn”,c,c,c);}

5.Problem A: 最简单的程序 Description 输出一行“Hello world!”。

Input 无

Output Hello world!

Sample Input Sample Output Hello world!

HINT Append Code #include int main(){

printf(“Hello world!”);}

6.Problem B: 算术基本运算 Description 计算两整数x和y(0

Input 输入只有一行,格式见sample。

Output 输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sample

Sample Input x = 11, y = 3

Sample Output x + y : 14 xy : %dn“,x-y);

printf(”x * y : %dn“,x*y);

printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y);

printf(”x ^ 2 : %dn“,x*x);

printf(”y ^ 3 : %dn“,y*y*y);} 7.Problem C: 自增自减运算 Description C语言中有自增运算++、自减运算--,并且可以前置和后置。

编写一个程序:对输入的一个整数a,输出a++、a--、++a、--a的值。

Input 一个整数a,a是很小的整数。

Output 输出为5行,第一行为a的值,后面依次为--a、a--、a++、++a的值。

5行输出纵向a要对齐,“:”对齐,“:”前后各一个空格,后面的数值不用对齐。每行行尾都有回车。

Sample Input 0

Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1

HINT Append Code #include int main(){ int a,x;scanf(”%dn“,&x);a=x;printf(” a

: %dn“,a);printf(”--a

: %dn“,--a);a=x;printf(” a--: %dn“,a--);a=x;printf(” a++ : %dn“,a++);a=x;printf(”++a

: %dn“,++a);}

8.Problem F: 绝对值 Description 求整型数据和浮点型数据的绝对值。

Input 输入两个数,第一个是整数,第二个是浮点数。

Output 输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。

Sample Input-1 1

Sample Output 1 1

HINT 求绝对值可以用标准库函数来完成,也可以自己判断。注意浮点数的输出格式。求绝对值的函数在哪个头文件?貌似很多人会搞错,包括很多编书的人!

Append Code #include //#include int main(){

int n;

float m;

scanf(”%d%f“,&n,&m);

//n=abs(n);

//m=fabs(m);

if(n<0)

{

n=-n;

}

if(m<0)

{

m=-m;

}

printf(”%dn“,n);

printf(”%g“,m);

return 0;}

9.Problem A: 奇数还是偶数? Description 输入一个整数,判读它是奇数还是偶数。

Input 输入只有一行,为一个100以内的正整数。

Output 输出为一行。

若输入为偶数则输出“even”,奇数输出“odd”。Sample Input 30

Sample Output even

HINT 用整数运算可以解决,练习“?:”表达式。

Append Code #include int main(){

int n;

scanf(”%d“,&n);

if(n>=0&&n<=100){

if(n%2==0)printf(”evenn“);

else printf(”oddn“);

}

return 0;}

10.Problem B: 简单的打折计算 Description 商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。

Input 输入只有一行,三个整数m、n和x,且0

Sample Input 95 300 4

Sample Output 334.40

HINT 了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。

Append Code #include int main(){

int m,x,n,a;

float b;

scanf(”%d%d%d“,&m,&n,&x);

0

x

m

a=m*x;

if(a>n)

b=0.88*a;

else

b=a;

printf(”%.2fn“,b);

}

11.Problem C: 判断闰年 Description 输入一个正整数的年份,判断是否为闰年。

Input 输入只有一行,为一个10000以内的正整数。

Output 输出为一行。

若输入为闰年偶数则输出“Yes”,否则输出“No”。

Sample Input 2010

Sample Output No

HINT 了解逻辑运算符和关系运算符。

Append Code #include int main(){

int x;

scanf(”%d“,&x);

if(x>0&&x<10000)

{

if(x%4==0&&x%100!=0)

printf(”Yesn“);

else if(x%400==0)

printf(”Yesn“);

else

printf(”Non“);

}

else

printf(”error“);}

12.Problem D: 水仙花数 Description 如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。

Input 一个整数x,100<=x<=999。

Output x是水仙花数,则输出“YES”,否则为“NO”。

Sample Input 153

Sample Output YES

HINT Append Code #include int main(){

int a,b,c,x;

scanf(”%d“,&x);

a=x/100;

b=x/10%10;

c=x%10;

if(x==a*a*a+b*b*b+c*c*c)

printf(”Yes“);

else

printf(”No“);}

13.Problem E: 三个数比较大小 Description 从键盘上输入0~100之间的三个数,按从小到大的顺序输出。

Input 输入只有一行,为三个整数。

Output 按从小到大输出这三个数。

Sample Input 15 10 20

Sample Output 10 15 20

HINT 用if语句判断各种情况可以解决这个问题。

Append Code #include int main(){

int a,b,c;

scanf(”%d%d%d“,&a,&b,&c);

if(a>=b)

{

if(b>=c)

printf(”%d %d %dn“,c,b,a);

else if(c>=a)

printf(”%d %d %dn“,b,a,c);

else

printf(”%d %d %dn“,b,c,a);

}

else

{

if(a>=c)

printf(”%d %d %dn“,c,a,b);

else if(b>=c)

printf(”%d %d %dn“,a,c,b);

else

printf(”%d %d %dn“,a,b,c);

} }

14.Problem F: 奇怪的求和之一 Description 给定3个正整数a、b和c,按照如下规则求和: 如果这个数字是偶数,则累加到和中;

如果这个数字是奇数,则将大于该数的最小偶数累加到和中。

Input 三个正整数,均在100以内。

Output 一个和。

Sample Input 2 3 5

Sample Output 12

HINT 如果不会使用分支语句,可使用条件运算符判断到底将哪个数累积到和中。

Append Code #include int main(){

int a,b,c;

scanf(”%d%d%d“,&a,&b,&c);

if(a%2!=0)a++;

if(b%2!=0)b++;

if(c%2!=0)c++;

printf(”%dn“,a+b+c);

}

15.Problem G: 你过线了吗? Description 经过四年的学习,你决定报考我国著名的“285”高校之一的北青大学,经过认真的复习,残酷的考试,终于知晓了自己的考试成绩,也知道了北青大学的录取分数线,请你编程判断,自己过线了吗? Input 输入有2行,第一行有4个正整数,分别表示三门课程的分数线以及总分分数线。第二行有3个非负整数,分别表示你考的三门课程的成绩。

Output 如果你的三门课程成绩都不低于相应课程的分数线,且你的考试总分也不低于北青大学的总分分数线要求,则输出“congratulations”,否则输出“sorry”。

Sample Input 70 80 70 240 80 80 82

Sample Output congratulations

HINT 如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

Append Code #include int main(){

int a,b,c,d,e,f,g,h;

scanf(”%d %d %d %dn%d %d %d“,&a,&b,&c,&d,&e,&f,&g);

h=e+f+g;

if(e>=a&&f>=b&&g>=c&&h>=d)

printf(”congratulations“);

else

printf(”sorry“);} 16.Problem I: A+B Problem(II): Input/Output

Practice Description 计算a+b,0<=a,b<1000。

Input 输入的第一行是一个整数N,后面有N对整数a和b,每对a和b占一行,a,b用空格分开。

Output 每行输出一个a+b的和,顺序与输入对应。

Sample Input 2 1 2 10 20

Sample Output 3 30

HINT N给出了测试样例数,用for循环处理方便。

Append Code #include int main(){

int n,a,b,i;Scanf(“%d”,&n);For(i=0;i

17.Problem H: A+B Problem Description 计算a+b,0<=a,b<1000。

Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。

Output 每行输出一个a+b的值,顺序与输入对应。

Sample Input 1 2 10 20

Sample Output 3 30

HINT OJ系统上测试输入结束符为EOF(End Of File),其值为-1。用scanf()把文件所有内容读完后,会读到EOF,所以可以用来判断输入是否完成,测试时可以用Ctrl+Z产生EOF。本题解法参看FAQ。Append Code #include int main(){

int a,b;

while(scanf(”%d%d“,&a,&b)!=EOF){

printf(”%dn“,a+b);

}

return 0;}

18.Problem A: 判断是否是元音字母 Description 输入一个英文字母,判断是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U

Input 输入一个英文字母

Output 是元音字母,输出“yes”,否则输出“no”,行尾没有回车。

Sample Input A

Sample Output yes

HINT Append Code #include void main(){

char ch;

scanf(”%c“,&ch);

if(ch>='A'&&ch<='Z')

ch=ch+32;

if(ch=='a')

printf(”yes“);

else if(ch=='e')

printf(”yes“);

else if(ch=='i')

printf(”yes“);

else if(ch=='o')

printf(”yes“);

else if(ch=='u')

printf(”yes“);

else

printf(”no“);

}

19.Problem B: 按顺序输出三个数 Description 对于输入的3个整数,按照从小到大的顺序输出。

Input 输入3个int类型内的整数,两两之间用一个空格隔开。

Output 按照从小到大的顺序输出上述三个数,两两之间用一个空格隔开。

Sample Input 2 1 3 Sample Output 1 2 3

HINT Append Code #include void main(){

int a,b,c,temp;

scanf(”%d%d%d“,&a,&b,&c);

if(a

{

temp=a;

a=b;

b=temp;

}

if(a

{

temp=a;

a=c;

c=temp;

}

if(b

{

temp=b;

b=c;

c=temp;

}

printf(”%d %d %dn“,c,b,a);}

20.Problem E: Description 判断输入整数的奇偶性。

判断奇偶数 Input 输入为一个整数。

Output 输出只有一行,代表判断结果。如果输入的整数n是一个偶数,输出: n is an even number.否则输出:

n is an odd number.见样例。

Sample Input 12

Sample Output 12 is an even number.HINT Append Code #include int main(){

int a;

scanf(”%d“,&a);

if(a%2==0)

printf(”%d is an even number.“,a);

else

printf(”%d is an odd number.“,a);}

21.Problem A: 判断两个整数的大小关系 Description 输入2个整数a和b,如果a>b,则输出1,否则输出0。

Input 两个整数a和b,均不超过int类型的表示范围。

Output 表示a>b的结果:如果a>b,则输出1,否则输出0。

Sample Input 3 4

Sample Output 0

HINT

Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);if(a>b)

printf(”1“);

else

printf(”0“);return 0;} 22.Problem D: 成绩的等级 Description 把百分制的考试成绩转换成五级制的成绩: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing

不在0~100之间的输入是非法数据,输出“Error”。

Input 输入多行,每行一个整数。

Output 输入所对应的成绩等级。

Sample Input-1 81 92 35 68 72 100

Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch语句解决这个问题比较方便。

Append Code #include int main(){

int score;

while(scanf(”%d“,&score)!=EOF)

{

if(score<0||score>100)

printf(”Errorn“);

else

{

switch(score/10)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:printf(”Failingn“);break;

case 6:printf(”Passn“);break;

case 7:printf(”Averagen“);break;

case 8:printf(”Goodn“);break;

case 9:

case 10:printf(”Excellentn“);break;

}

}

}

return 0;}

23.Problem E: 输出是m的倍数或n的倍数、但不是

m和n的公倍数的数 Description 输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1<=m,n

Input 输入三个整数,依次为k、m、n。

Output 从小到大输出符合题意的所有整数,两数之间用一个空格分开。

Sample Input 15 2 3

Sample Output 2 3 4 8 9 10 14 15

HINT 难点在于输出格式的控制:空格在数的中间,学会用循环时边界情况的特殊处理。

Append Code #include int main(){ int k,m,n,a,i=1;scanf(”%d %d %d“,&k,&m,&n);if(m

a=m;else

a=n;printf(”%d“,a);for(i=a+1;i<=k;i++){

}

if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0))

printf(” %d“,i);} return 0;

24.Problem B: 两整数相加减 Description 计算a+b和a-b。

Input 输入为一对整数a和b。a,b用空格分开。

Output 输出a+b和a-b的计算结果,各占一行。

Sample Input 1 2

Sample Output 3-1

HINT Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);

printf(”%dn“,a+b);

printf(”%dn“,a-b);} 25 Problem C: 它满足条件吗? Description 需要判断给定的一个整数是否同时满足如下三个条件: 1.它是一个完全平方数。2.它是一个偶数。3.它是一个正数。

注:若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数。例如:

0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 Input 一个int范围内的整数。

Output 如果输入的数字满足条件,则输出yes,否则输出no。

Sample Input 100

Sample Output yes

HINT 注意逻辑表达式判断三个条件的顺序。如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

库函数sqrt()可以用于求一个数的平方根。

Append Code #include #include int main(){ int a;scanf(”%d“,&a);

if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0)

printf(”yes“);

else

printf(”no“);}

26.Problem F: 多路分支 Description 编写一个完整的程序,运行时向用户提问”你考试考了多少分?(0-100)“接受输入后判断其等级并显示出来等级: 优:90<=分数<=100 良:80<=分数<90 中:60<=分数<80 差:0<=分数<60

Input 输入任意一个整数分数值,显示等级;再输入任意一个整数分数值,显示等级;....直到测试数据较充分,可输入-1止。

Output 对任意输入的分数值,输出对应的等级,直到输入的数为-1时才退出运行.Sample Input 102 100 90 80 70 60 50 0-80-1

Sample Output grad must between 0 and 100 优

grad must between 0 and 100 grad must between 0 and 100

HINT Append Code #include int main(){

int x;

while(scanf(”%d“,&x)!=EOF)

{

if(x<0||x>100)

printf(”grad must between 0 and 100n“);

else if(x>=90)

printf(”优n“);

else if(x>=80)

printf(”良n“);

else if(x>=60)

printf(”中n“);

else if(x>=0)

printf(”差n“);

}

return 0;} Problem D: 有多少人? Description 学校举行运动会,如果全体学生按照3人一队列队,则多了1个人;如果按照4人一队列队,则多了2个人;如果按照5人一队排队,则多了3个人。请问这个学校有多少学生?

Input 一个int类型的正整数N,是学生人数的上界,即:该校学生数不超过N。

Output 所有可能的学生数,每个数占一行。

Sample Input 200

Sample Output 58 118 178

HINT Append Code #include #include int main(){

int n,i;

scanf(”%d“,&n);

for(i==1;i<=n;i++){ if(i%3==1&&i%4==2&&i%5==3)

printf(”%dn“,i);}

return 0;} Problem C: 正负数各有几个? Description 输入若干个整数,求其中正数、负数的个数。

Input 输入分为2行:第一行是一个数字N>0,表示下面有N个整数。第2行是N个整数,都是int类型的。

Output 输出所输入的N个整数的正数个数和负数个数,并用空格分开2个输出。Sample Input 10 2 3 4 5-1-2-3-4-5

Sample Output 5 5

HINT 貌似还有一种叫做0的数。

Append Code #include int main(){

int n,a,i,num1=0,num2=0;

scanf(”%d“,&n);for(i=0;i

{

scanf(”%d“,&a);

if(a>0)

num1++;

else if(a<0)

num2++;

}

printf(”%d %dn“,num1,num2);

return 0;} Problem A: A+B Problem(III): Input/Output

Practice Description 计算a+b,0<=a,b<1000。

Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。当测试样为0 0时表示输入结束,0 0不参与运算。

Output 每行输出一个a+b的值,顺序与输入对应。

Sample Input 1 2 10 20 0 0

Sample Output 3 30

HINT 练习break的使用。

Append Code #include int main(){ int a,b;while(scanf(”%d %d“,&a,&b)!=EOF)

{

if(a!=0||b!=0)

}

printf(”%dn“,a+b);

else

break;

return 0;} 30 Problem B: A+B Problem(IV): Input/Output

Practice Description 计算a+b,0<=a,b<1000。

Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。

Output 每行输出一个a+b的值,顺序与输入对应。每个格式样例之间用一个空行分隔开。

Sample Input 1 2 10 20 15 35

Sample Output 3 30 50

HINT 由于输出的和比空行多一个,所以全部计算放在一个循环里是不行的,必须要特殊处理开头或者结尾。

Append Code #include int main(){ int a,b,n=0;while(scanf(”%d %d“,&a,&b)!=EOF){

n++;

if(n==1)

printf(”%dn“,a+b);

else

printf(”n%dn“,a+b);

}

return 0;}

Problem C: n个数的最大值和最小值 Description 找出n个数中最大的数和最小的数,并将它们的值输出出来。

Input 输入为n+1个整数,都在int类型范围内。这些数可能用若干空格或者换行符分隔开。输入的第1个数为n,表示后续有n个数输入。从输入的第2个数开始,求出直到第n+1个数中最大的数和最小的数。

Output 输出为两行,格式见sample。

Sample Input 3 0 1-1

Sample Output The maximum number is 1.The minimum number is-1.HINT 分隔符是空格还是回车都是空白符,对scanf(”%d“)来说没有区别;先读入n,然后用for循环就很容易控制读入n个数的过程。

Append Code #include int main(){

int n,i,max,min;

scanf(”%d“,&n);

int a[n];

for(i=0;i

scanf(”%d“,&a[i]);

max=a[0];

min=a[0];

for(i=0;i

{

if(max

max=a[i];

if(min>a[i])

min=a[i];

}

printf(”The maximum number is %d.n“,max);

printf(”The minimum number is %d.“,min);

return 0;} 32.Problem D: 求100以内的素数 Description 素数是只能被1和自身整除的正整数,根据数学定义1不是素数。素数也叫质数。

Input 输入为两个整数m和n,满足0<=m<=n<=100。

Output 从大到小输出m~n之间的所有素数,一个素数一行。如果m~n之间没有素数,则不输出任何数。

输出的所有数在两行“=====”之间。

Sample Input 2 12

Sample Output ===== 11 7 5 3 2 =====

HINT 利用素数的数学规律可以很容易的解出此题,题目给出的数据范围是关键。

Append Code #include #include int main(){ int m,n,i,j,k,t;scanf(”%d %d“,&m,&n);printf(”=====n“);for(i=n;i>=m;i--){

t=0;

for(j=2;j<=sqrt(i);j++)

if(i%j==0)

t=1;

if(t==0&&i>1)

printf(”%dn“,i);} printf(”=====“);return 0;} 33.Problem E: 是否构成三角形? Description 给出三个整数,代表三条边的长度,判断这三条边的长度是否能构成一个三角形?

Input 第一行是n(1<=n<=100),表示有n组测试数据

接下来有n行,每一行包含三个整数,表示三个边长(1<=边长<=100)

Output 如果三条边能构成三角形,输出YES,否则输出NO

Sample Input 3 1 2 3 2 8 7 20 20 1

Sample Output NO YES YES

HINT Append Code #include int main(){ int a,b,c,n,i;scanf(”%d“,&n);for(i=0;i

{scanf(”%d%d%d“,&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

printf(”YESn“);else printf(”NOn“);}

return 0;} 34.Problem C: 简单的整数排序 Description 对给出的若干整数按从小到大排序。

Input 输入的第一个数为n(n<=1000),后接n个整数。

Output 按从小到大的顺序输出这些整数,每两个整数之间用一个空格分隔开,最后一个整数后面没有空格。

Sample Input 10 3 9 1 5 2 8 5 6 7 3

Sample Output 1 2 3 3 5 5 6 7 8 9

HINT 排序前必须把所有的整数都存储下来。因为只有最多1000个数,1秒的时间足够任何排序算法运行处结果来。

Append Code #include int main(){

int c,i,n,j;

int a[1000];

scanf(”%d“,&n);

for(i=0;i

scanf(”%d“,&a[i]);

for(i=1;i<=n-1;i++)

{

for(j=0;j

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

printf(”%d“,a[0]);

for(i=1;i

printf(” %d“,a[i]);

return 0;}

35.Problem A: Description

购物的路程 Saya和Kudo一起去购物。假定她们逛的街是一条直线,而商铺是这条直线上的一些点。她们将车停在该直线最左端的店铺处,然后从左向右开始逛每一个店铺,然后从最右边的店铺再返回到停车处。你的任务是计算她们走了多少路。

Input 输入有多组。每一组的第一行是N(0

Output 对每组输入,输出她们走的路长。

Sample Input 4 13 89 37 6 7 30 41 14 39 42 0

Sample Output 152 70

HINT Append Code #include int main(){

int n,i,max,min,a[100001];

while(scanf(”%d“,&n)&&n!=0)

{

scanf(”%d“,&a[0]);

min=max=a[0];

for(i=1;i

{

scanf(”%d“,&a[i]);

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

printf(”%dn“,(max-min)*2);

}

return 0;} 36.Problem B: 求累加和 Description 编程求min~max的累加和(含min和max),其中max>=min>0。部分程序已经给出,请填充其中的空白语句,并提交填充后的完整程序。

Input 输入为多行。第一行是一个整数N>0,表示后面有N个测试用例。后面有N行,每行包含2个整数,分别是min和max。

Output 输出为N行,每个测试用例的计算结果占据一行。每行的格式为: case i:sum=s.其中i表示测试用例的编号(从1开始),s是该测试用例对应的累加和(设不超过int的表示范围)。

Sample Input 3 1 10 1 100 1 1

Sample Output case 1:sum=55.case 2:sum=5050.case 3:sum=1.HINT Append Code #include int main(){

int n,i,j,max,min,sum;

scanf(”%d“,&n);

for(i=0;i

{ sum=0;

scanf(”%d%d“,&min,&max);

if(max==min)

printf(”case %d:sum=%d.n“,i+1,min);

else

{

for(j=min;j<=max;j++)

sum=sum+j;

printf(”case %d:sum=%d.n“,i+1,sum);

}

} return 0;} 37.Problem G: 顺序输出字母 Description 按字母顺序输出两个字母st和ed之间的所有字母,但不包括st和ed。不输出逆序。

Input 两个字母st和ed,都是大写字母,用一个空格分开。

Output 在一行内按顺序输出st和ed之间的所有字母,但不包括st和ed。例如:

输入为A和E,则输出为BCD;

输入为A和B,则什么字母也不输出,只有一个空行; 输入为E和A,也是什么字母也不输出,只有一个空行。最后要输出一行(行尾不回车): ***END***

Sample Input A C

Sample Output B

***END***

HINT Append Code #include int main(){

char st,ed,a;

int i;

scanf(”%c%c%c“,&st,&a,&ed);

{

for(i=st+1;i

printf(”%c“,i);

printf(”n***END***“);

}

return 0;} 38.Problem F: 单字母变换 Description Tom和Jack是密码学爱好者,他们在聊天时经常使用一些暗语。他们使用的一种最简单的暗语是:将要说的每句话里面的英文字母变成这个字母之后的某个字母。现在要求你写一个程序,将一个字母变成它之后的某个字母。

Input 输入有2个:一个大写字母c和一个正整数d(0

Output 输出字母c之后的第d个字母。大小写与c一致。如果c之后的某个字母已经超出'Z',则再从字母'A'开始计数。

如:c='A',d=3,则输出应为:D。若:c='Y',d=3,则输出应为:B。

Sample Input A 3

Sample Output D

HINT Append Code #include int main(){

char c;

int d;

scanf(”%c%d“,&c,&d);

if(c+d<='Z')

printf(”%c“,c+d);

else

printf(”%c“,c+d-26);

return 0;}

39.Problem B: 登录密码验证 Description 编写一个程序,模拟用户登录系统的密码验证过程。系统提供给用户的密码长度最长为20个字符,若密码输入错误可以再次输入。但为了保证用户密码安全,若连续输入密码错误超过5次就会锁定账号一段时间。

Input 输入为若干个串,至EOF结束。输入的第一个串是用户的正确密码,后面的串为模拟用户登录时的输入的密码。

Output 每次输入错误的密码,输出一个“Wrong!”,若输入的密码为正确的,输出一个“Welcome!”,并结束密码测试。若前5次输入的密码都是错误的,则后面的输入中不管是否有正确的密码都输出“Out of limited!”。

Sample Input abcdefg

123456 kkkkkkkk abcdefg

Sample Output Wrong!Wrong!Welcome!

HINT 输入可以用scanf(”%s“)处理,密码比较用字符串的比较可以完成。

Append Code #include #include int main(){

char a[20],b[20];

int i,j=1;

scanf(”%s“,a);

while(scanf(”%s“,b)!=EOF)

{

if(j<=5)

{

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

{

printf(”Welcome!n“);

break;

}

else

printf(”Wrong!n“);

j++;

}

else printf(”Out of limited!n");

} } 40.Problem C: 兔子的繁殖问题 Description 假设一对兔子每月能生一对小兔(一雌一雄),每对小兔出生后的下一个月是没有繁殖能力的,至出生后的第三个月开始又可以每月生一队小兔,问从一对刚出生的小兔开始,经过若干个月后一共有多少兔子(假设在此过程中兔子没有死亡)?

这个问题是意大利数学家菲波那契(Fibonacci)在他1202年出版的《算盘全书》中提出来的,从第一对刚出生的小兔开始每月的兔子数被乘坐菲波那契序列。

Input 输入的第一个数为n,接下来有n个数字。每个数字为一个月份m(m<=45)。

Output 输出为n行,每行为第m个月后的兔子总数。

下载2014年9月份考试C语言程序设计第二次作业word格式文档
下载2014年9月份考试C语言程序设计第二次作业.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C 语言程序设计

    《C 语言程序设计》主要在计算机软件、计算机网络、计算机应用、通信技术、智能电子、电子信息工程、多媒体以及核工程与核技术等专业中开设,是电子信息类、机械类等工科专业......

    C语言程序设计课程作业_A资料

    C语言程序设计课程作业_A 一、单选题 1. (4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是( )     答案 D A. x%=(k%=5) B. x%=(k-k%5) C. x%=k D. (x%=k)-(k%=5......

    c程序设计作业

    1、分析下面程序: # include int main { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%cn"c1,c2); printf("c1=%d,c2=%dn",c1,c2); return 0; } (1)运行时会输出什么信息?......

    VB语言程序设计-在线作业_C 答案

    VB语言程序设计-在线作业_C 用户名:W310201132227最终成绩:100.0 一 单项选择题 1. 当一个工程含有多个窗体时,其中的启动窗体是()。 窗体 最后一个添加的窗体 第一个添加的窗体......

    华师在线C语言程序设计作业

    C语言程序设计 1. 完成一个大小写字母自动转换的程序,输入大写字母,程序可以输出小写字母, sum+=i; i++; }while(i='a'&&str[i]='A'&&str[i]......

    经典C语言程序设计例题

    经典C语言程序设计例题 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组......

    第一章 C语言程序设计

    第一章 C语言程序设计 考试形式:试卷(全国统一 4月第二个星期六9月倒数第二个星期六) 笔试: 满分100分60分及格 时间:90分钟内容: 70分 C语言知识30分 公共基础 选择题:60分 前......

    C语言程序设计心得体会

    C语言程序设计心得体会在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在......