第一篇:《C语言程序设计》2011-2012-2B答案
河南理工大学学期
《C语言程序设计》笔试试卷(B卷)
一、单项选择题(每题1分,共50分),在每小题列出的四个选项中只有一个选项是符合题目要求的,请在答案卡上将正确答案所对应选项的字母涂黑。
1.A2.B3.A4. D5. C6.D7.B8.D9.D10.B
11.B12.A13.B14.B15.D16.A17.C18.D19.C20.B
21.C22.A23.C24.C25.C26.A27.D28.A29.C30.A
31.C32.C33.C34.B35.A36.D37.B38.D39.D40.A
41.B42.B43.B44.C45.B46.C47.A48.B49.A50.C
二、填空题(每空2分,10个空,共20分)。
51.2652.353.154.‘ ’55.Pa是指向整型二维数组行的指针变量,每行有10个元素。56.#define57.递归58.;(分号)59.5.360.12
三、程序阅读试题(共10题,每题3分,共30分)
61.a10=1,c8=101,dc=b
62.852
k=4,y=0
63.m=82,j=7
64.下面程序的输出结果是____。
ABCD
BCD
CD
D
65.YES
66.s=-13,count=2
67.123
68.1 2 3 6 7 9
69.The output is:
12876543910
67821543910
70.12
《C语言程序设计》试卷 第1页(共1页)
第二篇:C语言程序设计考试题答案
1、已知int i, x[3][4];则不能将x[1][1]的值赋给变量i的语句是______(分数:2 分)
A.i=*(*(x+1))B.i=x[1][1] C.i=*(*(x+1))D.i=*(x[1]+1)标准答案是:A。
2、当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是______.(分数:2 分)
A.a=c=b;B.(a=c)&&(b=c);C.c=b=a;D.(a=c)||(b=c);标准答案是:B。
3、函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是______。(分数:2 分)
A.fund(int *x, int *y){ *x=*x+*y;*y=*x-*y;*x=*x-*y;} B.funb(int x, int y){ int t;t=x;x=y;y=t;} C.funa(int *x, int *y){ int *p;*p=x;*x=*y;*y=*p;} D.func(int *x, int *y){ *x=*y;*y=*x;} 标准答案是:A。
4、若x=2,y=3则x||y的结果是______(分数:2 分)
A.0 B.3 C.1 D.2 标准答案是:C。
5、已知int a[10];则对a数组元素的正确引用是______(分数:2 分)
A.a[10] B.a[3.5] C.a[10] D.a(5)标准答案是:C。
二、多选
1、若定义:int a【2】【3】{0,2,4,6,8,10};以下描述正确的有______(分数:3 分)A.*(a+1)为元素6的地址 B.*(a【1】+1)的值为2 C.**(a+1)+2的值为8 D.a【0】与a的相同 标准答案是:ABCD。
2、在缓冲文件系统中用于读写的函数有______(分数:3 分)A.putchar()B.fread()C.rewind()D.purw()标准答案是:ABD。
3、指出下面合法的标识符______(分数:3 分)A.3ab B.ABC C.a_3 D._stu2 标准答案是:ABC。
4、指出下面哪些是合法的用户定义的标识符______(分数:3 分)A.P-S B._908 C.wind D.x y 标准答案是:BC。
6、这段程序中的常量有:#define PI 3.14;void main(){ int sum;sum = 10 + 15;printf(“sum=%dn”,sum);printf(“result is 25n”);}这段程序中常量有______(分数:3 分)A.10 B.sum C.15 D.PI 标准答案是:ACD。
1、说明语句int *(*p)();的含义是______(分数:2 分)
A.p是一个指向int型数组的指针 B..p是指针变量,它构成了指针数组
C.p是一个指向函数的指针,该函数的返回值是一个整型
D.p是一个指向函数的指针,该函数的返回值是一个指向整型的指针 标准答案是:D
2、已知int a, *p=&a;则下列函数调用中错误的是______(分数:2 分)
A.scanf(”%d”, &a);B.scanf(”%d”, p);C.printf(”%d”, a);D.printf(”%d”, p);标准答案是:D。
3、在C语言中,字符型数据在内存中的存储形式是______(分数:2 分)
A.原码 B.补码 C.反码 D.ASCII码 标准答案是:D。
4、已定义以下函数:fun(int *p){ return *p;}该函数的返回值是______(分数:2 分)
A.不确定的值
B.形参p所指存储单元中的值 C.形参p中存放的值 D.形参p的地址值 标准答案是:D。
5、()已知char b[5],*p=b;,则正确的赋值语句是(分数:2 分)A.b=“abcd”;B.*b=“abcd”;C.p=“abcd”;D.*p=“abcd”;标准答案是:C。
二、多选
1、如果要把常量327存入变量a中,a可以定义成哪些类型?______(分数:3 分)A.int B.char C.long D.float 标准答案是:ACD。
2、下面哪些写法是对的,而且是常量?______(分数:3 分)A.125 B.-0.456 C.1.25E+20 D.'AB' 标准答案是:AC。
3、指出下面错误的表达式______(分数:3 分)A.a+b=5 B.56=a11 C.i=i++ D.5.6+6.2%3.1 标准答案是:ABD。
4、若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实现将f中的数值保留小数点后两位,第三位进行四舍五入的运算?______(分数:3 分)A.f=(f*100+0.5)/100.0 B.i=f*100+0.5,f=i/100.0;C.f=(int)(f*100+0.5)/100.0;D.f=(f/100+0.5)*100.0;标准答案是:BC。
5、已知a为整型变量,那么与表达式a!=0真假值情况相同的表达式有哪些?______(分数:3 分)A.a>0||a<0 B.a C.!a==0 D.!a 标准答案是:ABC。
1、()若有以下定义:char s[20]= “programming”,*ps=s;则不能代表字符g的表达式是(分数:2 分)A.ps+3 B.s[3] C.ps[3] D.ps+=3,*ps 标准答案是:B。
2、()当对两个字符串进行比较时,应该使用的函数是(分数:2 分)A.strcat B.strcmp C.strcpy D.strlen 标准答案是:B。
3、()strlen 11.若i为整型变量,则以下循环的次数是for(i=2;i==0;)printf(“%d”,i--);(分数:2 分)A.无限次 B.0次 C.1次 D.2次
标准答案是:B。
4、()以下关于数组的描述正确的是(分数:2 分)A.数组大小固定,但是可以有不同类型的数组元素 B.数组大小可变,但是所有数组元素的类型必须相同 C.数组大小固定,所有元素的类型必须相同 D.数组大小可变,可以有不同类型的数组元素 标准答案是:C。
5、()以下能正确定义数组并正确赋初值的语句是(分数:2 分)A.int N=5,b[N][N];B.int a[1][2]={{1},{3}};C.int c[2][]= {{1,2},{3,4}};D.int d[3][2]={{1,2},{34}};标准答案是:D。
二、多选
1、程序的结构可分为哪几类______(分数:3 分)A.顺序结构 B.循环结构 C.程序结构 D.选择结构
标准答案是:ABD。
2、已知a为整型变量,那么与表达式a!=0真假值情况相同的表达式有哪些?______(分数:3 分)A.a>0||a<0 B.a C.!a==0 D.!a 标准答案是:ABC。
3、已知a为整型变量,那么与表达式a!=0真假值情况相同的表达式有哪些?______(分数:3 分)A.a B.!a==0 C.!a D.a>0||a<0 标准答案是:ABD。
4、指出下面错误的表达式______(分数:3 分)A.a=5,b=6,c=7 B.i=i++ C.5.6+6.2%3.1 D.56=a11 标准答案是:BD。
5、下面哪些写法是对的,而且是常量?______(分数:3 分)
A.125 B.2.5E+21 C.AB' D.n'123 标准答案是:BD。
1、()选择正确的输入语句()。:(其中:char string[20];)使得string的内容为“I am student”.数:2 分)
A.scanf(“%s”, string);B.scanf(“%c”, &string);C.scanf(“%s”, &string);D.gets(string);标准答案是:D。
2、()对以下说明语句 int a[10]={6,7,8,9,10};的正确理解是(分数:2 分)A.将5个初值依次赋给a[6]至a[10] B.将5个初值依次赋给a[0]至a[4] C.因为数组长度与初值的个数不相同,所以此语句不正确 D.将5个初值依次赋给a[1]至a[5] 标准答案是:B。
3、()以下标识符中可以作为用户函数名的是(分数:2 分)A.struct B.int C.union D.go_to 标准答案是:D。
4、源程序要正确地运行,必须要有什么函数?______(分数:2 分)A.printf函数 B.自定义的函数 C.main D.不需要函数 标准答案是:C。
5C语言程序由什么组成?______(分数:2 分)A.子程序
B.主程序和子程序
(分C.函数 D.过程
标准答案是:C。
二、多选
1、下面哪些是合法的用户定义的标识符______(分数:3 分)A._908 B.*par C.sheep!D.wind 标准答案是:AD。
2、下面合法的标识符______(分数:3 分)A.ABC B.a_3 C.sum.a D._stu2 标准答案是:ABD。
3、C语言的主要特点有哪些?______(分数:3 分)A.简洁、紧凑,使用方便、灵活,易于学习和应用。B.C语言是面向结构化程序设计的语言。
C.C语言允许直接对位、字节和地址进行操作。D.数据类型丰富。标准答案是:ABCD。
4、已定义c为字符型变量,则下列语句中错误的是______(分数:3 分)A.c='97' B.:c=“97” C.c=97;D.c=“a” 标准答案是:ABD。
5下列选项中是C语言合法标志符的有______(分数:3 分)A.good_morning B.main C.stdio.h D.8abc 标准答案是:AB。
1、一个C程序的执行是从______(分数:2 分)
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的main函数开始,到本程序文件的最后一个函数结束 D.本程序文件的第一个函数开始,到本程序main函数结束 标准答案是:A。
2、以下叙述正确的是______(分数:2 分)
A.在C程序中,main函数必须位于程序的最前面 B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句 D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误 标准答案是:C。
3、以下叙述不正确的是。______(分数:2 分)
A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面 标准答案是:D。
4、语言规定:在一个源程序中,main函数的位置______(分数:2 分)
A.必须在最开始
B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 标准答案是:C。
5、一个C语言程序是由______(分数:2 分)
A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 标准答案是:B。
二、多选
1、指出下面合法的标识符:______(分数:3 分)A.3ab B.ABC C.a_3 D._stu2 标准答案是:BCD。
2、指出下面哪些是关键字:______(分数:3 分)A.char B.abc C.printf D.float 标准答案是:AD。
3、指出下面哪些是合法的用户定义的标识符?______ A.P-S B.put11 C.printf D.Int 标准答案是:BD。
4、C语言的基本类型哪些:______(分数:3 分)A.整型 B.枚举型 C.数组型 D.指针型 分)(分数:标准答案是:AB。
5这段程序中的常量有:(#define PI 3.14;void main(){ int sum;sum = 10 +15;printf(“sum=%dn”,sum);printf(“result is 25n”);}这段程序中常量有______(分数:3 分)A.10 B.15 C.25 D.PI 标准答案是:ABD。1、75的十六进制写法为___,八进制写法为______(分数:2 分)A.0x4b 0113 B.0165 117 C.61 0x3d D.0x4b 61 标准答案是:A。2、0x75的八进制写法为___,十进制写法为___。(分数:2 分)A.0165 117 B.0x4b 0113 C.61 0x3d D.0x4b 61 标准答案是:A。3、075的十进制写法为___,十六进制写法为___。(分数:2 分)A.0x4b 0113 B.0165 117 C.61 0x3d D.0x4b 61 标准答案是:C。
4、下面哪个表达式的值为4______(分数:2 分)A.(float)11/3 B.2016/11/3 星期四上午 12:00:00 C.11.0/3 D.(int)(11.0/3+0.5 标准答案是:D。
5已知整型变量a=6,b=7,c=1,则下面表达式的值为多少?a+3______(分数:2 分)A.9 B.2 C.1 D.65 标准答案是:A。
二、多选
1、C语言中整形常量按进制划分,有以下几种:______(分数:3 分)A.十六进制常量 B.十进制常量 C.八进制常量 D.二进制常 标准答案是:ABC。
2、如果要把常量327存入变量a中,a可以定义成哪些类型?______(分数:3 分)A.int B.char C.float D.long 标准答案是:ACD。
3、下面哪些写法是对的,而且是常量?______(分数:3 分)A.125 B.-0.456 C.56 D.452.2 标准答案是:AB。
4、指出下面错误的表达式:______(分数:3 分)A.56=a11 B.a+b=5 C.i=i++ D.5.6+6.2%3.1 标准答案是:ABD。
5若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实现将f中的数值保留小数点后两位,第三位进行四舍五入的运算?______(分数:3 分)A.f=(f*100+0.5)/100.0 B.i=f*100+0.5,f=i/100.0 C.f=(int)(f*100+0.5)/100.0 D.f=(f/100+0.5)*100.0 标准答案是:BC。
1、在C语言中,要求运算数必须是整型的运算符是_____(分数:2 分)
A./ B.++ C.!= D.% 标准答案是:D。
2、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是______(分数:2 分)A.2.500OO B.2.7500OO C.2.3600OO D.2.0OO 标准答案是:B。
3、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为______(分数:2 分)A.int B.float C.double D.不确定 标准答案是:C。
4、在C语言中, char型数据在内存中的存储形式是:______(分数:2 分)
A.补码 B.反码 C.原码 D.ASCII码 标准答案是:D。
5、若有以下说明语句:char s='092';则下面哪一项是正确的______(分数:2 分)
A.使s的值包含2个字符 B.说明语句不合法
C.使s的值包含6个字符 D.使s的值包含4个字符 标准答案是:B。
二、多选
1、下面哪些是非法的C语言转义字符?_______(分数:2 分)A.'t' B.' 8' C.' xaf' D.'' 标准答案是:BC。
2、请从下面的选项中选出正确的C语言的转义字符______(分数:2 分)A.''' B.'t' C.'n' D.'xaa' 标准答案是:ABCD。
3、以下符合C语言语法的赋值表达式是______(分数:2 分)A.d=9+e+f=d+9 B.d=9+e,f=d+9 C.d=9+e,e++,d+9 D.d=9+e++=d+7 标准答案是:BC。
4、sizeof(float)是______(分数:2 分)A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用
D.一个不合法的表达式 标准答案是:AB。
5C程序的结构可分为哪几类?______(分数:2 分)A.顺序结构 B.循环结构 C.程序结构 D.选择结构 标准答案是:AB。
1、putchar函数可以向终端输出一个:______(分数:2 分)
A.整型变量表达式值 B.字符串 C.实型变量值 D.字符或字符型变 标准答案是:D。
2、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式______(分数:2 分)A.从左起输出该字串,右补空格 B.按原字符长从左向右全部输出 C.右对齐输出该字串,左补空格 D.输出错误信息 标准答案是:B。
3、已知static int a[2][3]={2,4,6,8,10,12};正确表示数组元素地址的是______(分数:2 分)
A.*(a[1]+2)B.a[1]+3 C.*(a+1)D.a[0][0] 标准答案是:C
4、函数调用strcat(strcpy(str1, str2), str3)的功能是______(分数:2 分)
A.将串str1复制到串str2中,然后再连接到str3之后
B.将串str2复制到串str1中,然后再将串str3连接到串str1之后 C.将串str2复制到串str1中,再将串str1连接到str3之后 D.将串str1连接到串str2之后,再复制到str3之中 标准答案是:B。
5、已知int a[10];则对a数组元素的正确引用是______(分数:2 分)
A.a[10] B.a[3.5] C.a(5)D.a[10] 标准答案是:D。
二、多选
1、若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是______(分数:3 分)
A.a=b=c=d=100 B.d++;C.c+b;D.d=(c=22)-(b++)标准答案是:ABD。
2、以下描述正确的是______(分数:3 分)
A.使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成 B.while循环是先判断表达式,后执行循环语句
C.do-while和for循环均是先执行循环语句,后判断表达式 D.for,while和do-while循环中的循环体均可以由空语句构成 标准答案是:ABD。
3、以下4个选项中,可以看作是一条语句的有______(分数:3 分)A.{;} B.a=0,b=0,c=0;C.if(a>0)D.if(b==0)m=1;n=2;标准答案是:ABC。
4、以下叙述正确的是______(分数:3 分)A.C语言严格区分大小写英文字母 B.C语言用“;”作为语句分隔符
C.C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上 D.可以使用/*…*/对C程序中的任何部分作注释 标准答案是:ABCD。
5下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是______(分数:3 分)A.只能是0或1 B.只能是0或非0正数 C.可以是整型或字符型数据 D.可以是任何类型的数据 标准答案是:ABD。
1、在C语言的if语句中,用作判断的表达式为______(分数:2 分)
A.关系表达式 B.逻辑表达式 C.算术表达式 D.任意表达式 标准答案是:D。
2、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数表达式的值为“假”。则以下不能满足要求的表达式是______(分数:2 分)A.A%2= =1 B.!(A%2 = =0)C.!(A%2)D.A%2 标准答案是:C。
3、已知char s[20]= ”programming”, *ps=s;则不能引用字母o的表达式是______(分数:2 分)A.ps+2 B.s[2] C.ps[2] D.ps+=2, *ps 标准答案是:A。
4、已知char b[5], *p=b;则正确的赋值语句是。______(分数:2 分)
A.b=”abcd” B.*b=”abcd”;C.p=”abcd”;D.*p=”abcd”;标准答案是:C。
5、已知int a[]={1,2,3,4,5,6,7,8,9,10,11,12}, *p=a;则值为3的表达式是______(分数:2 分)
A.p+=2, *(p++)B.p+=2, *++p C.p+=3, *p++ D.p+=2, ++*p 标准答案是:A。
二、多选
1、以下不符合C语言语法的实型常量是______(分数:3 分)A.1.2E0.5 B.3.14.159E C.0.005 D.E15 标准答案是:ABD。
2、以下叙述中正确的是______(分数:3 分)A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main()函数 C.C源程序的基本组成单位是函数
D.在C源程序中,注释说明只能位于一条语句的最后 标准答案是:ABD。
3、以下正确的if语句形式是______(分数:3 分)A.if(x>y && x!=y)B.if(x==y)x+=y C.if(x!=y)scanf(“%d”,&x)else scanf(“%d”,&y);D.if(x 4、以下选项中不是C语言合法整数的是______(分数:3 分)A.10110 B.386 C.0Xffa D.x2a2 标准答案是:BD。 5以下关于数组描述错误的是______(分数:3 分) A.数组的大小是固定的,但可以有不同的类型的数组元素 B.数组的大小是可变的,但所有数组元素的类型必须相同 C.数组的大小是固定的,所有数组元素的类型必须相同 D.数组的大小是可变的,可以有不同的类型的数组元素 标准答案是:ABD。 1、设有定义:int x=12,n=5;则表达式x%=(n%2)的值为______(分数:2 分) A.2 B.3 C.5 D.0 标准答案是:D。 2、针对下列程序段回答问题().for(t=1;t<=100;t++){scanf(“%d”,&x);if(x<0)______(分数:2 分) A.x>=0时什么也不输出 B.最多允许输出100个非负整数 C.printf函数永远也不执行 D.当x<0时整个循环结束 标准答案是:B。 3、已知char b[5],*p=b;,则正确的赋值语句是______(分数:2 分) A.b=“abcd”;B.*b=“abcd”;C.p=“abcd”;D.*p=“abcd”;标准答案是:C。 4、在C语言中,十进制数47可等价地表示为______(分数:2 分) A.2f B.02f C.57 D.57 标准答案是:D。 5、有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,正确的形式是______(分数:2 分) A.fscanf(dog ,2,1,fp);B.fscanf(fp,“%d%d”,&dog ,&cat);C.fscanf(dog ,cat,2,1,fp);D.fscanf(fp,“%d”,&dog ,&cat);标准答案是:B。 二、多选 1、下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空:#indude “stdio.h”main(){int m=0,n=0;char c;1;while((_____)!='n'){ if(c>='A' && C<='Z')m++ if(c>='a' && c<='z')n++;}printf(“%dn”, m A.c=getchar()B.getchar()C.c=getchar()D.scanf(“%c”,c)标准答案是:AC。 2、以下选项中,合法的字符常量是______(分数:3 分)A.'t' B.'17' C.“n” D.'xaa' 标准答案是:ABD。 3、以下用户标识符,其中合法的是______(分数:3 分)A.return B.f2_G3 C.A3-3 D.abc 标准答案是:BD。 4、以下可以定义为用户标识符的有______(分数:3 分)A.scanf B.short C._3com_ D.int 标准答案是:AC。 5以下选项中合法的表达式是______(分数:3 分)A.0<=x<100 B.i=j==0 C.(char)(65+3)D.x+1=x+1 标准答案是:ABC。简答题 1#include void main(){ int i=0,j=1;for(i=2;i<=10;i++){ j*=i;} printf(“%d”,j);return 0;} 21.定义文件指针 2.打开文件,判断是否成功打开,若打开失败,程序退出运行状态 3.对文件进行读写操作 4.关闭文件 名词解释 1条件语句 2条件语句否定分支(与 if 连用)论述题 1限制|调试 河南理工大学学期 《C语言程序设计》笔试试卷(A卷) 一、单项选择题(每题1分,共50分) 1.B2.A3.D4.A5.C6.C7.C8.C9.C10.A 11.B12.B13.D14.D15.D16.C17.C18.C19.D20.A 21.C22.C23.A24.C25.B26.A27.B28.C29.D30.A 31.B32.D33.A34.D35.C36.C37.C38.A39.A40.C 41.C42.C43.D44.C45.B46.C47.C48.B 二、填空题(每空2分,10个空,共20分)。 51.目标文件52.float53.354.共用体 56.ASCII值57.strcpy58.函数59.15 三、程序阅读试题(共10题,每题3分,共30分) 61.20,10 62.**0****2** 63.v1=4, v2=7, v3=5, v4=8 64.2870 65.21 66.3 67.*prt1= 7,*prt2=5 a=7,b=5 68.10,9,8,7,6,5,4,3,2,1,69.8,17 70.123,0 《C语言程序设计》答案第1页(共1页)49.B50.D55.060.# 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 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 #include 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 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 5.Problem A: 最简单的程序 Description 输出一行“Hello world!”。 Input 无 Output Hello world! Sample Input Sample Output Hello world! HINT Append Code #include 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 : %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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 { 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 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 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 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 {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 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 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 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 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 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 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个月后的兔子总数。 《C 语言程序设计》主要在计算机软件、计算机网络、计算机应用、通信技术、智能电子、电子信息工程、多媒体以及核工程与核技术等专业中开设,是电子信息类、机械类等工科专业的重要专业基础课。 本校从2001至今,每年都开设《C语言程序设计》课程,由于,我校最开始时的特殊情况,主要把重点放在C语言中的各类重点、难点的语法、语义上,使得学生经过比较复杂和痛苦的过程后,对C语言在使用上很难做到自己编写程序。而且很多学生产生了畏惧心理。 2004年,学院成立计算机科学与技术系,为了更好学习和掌握C语言,计算机科学与技术专业和计算机维护专业(计算机应用技术前身)除了开设《C语言程序设计》课程外,在后续一学期还开设了《C语言程序设计课程设计》,使得计算机专业学生编程思想和能力得到了极大提高。 2005年,为了让我院工科学生更好的掌握C语言编程以及通过四川省计算机二级考试,在《C语言程序设计》课程后设置《C语言程序设计课程设计》,极大地提高了学生的动手机会和能力,过级率显著提高! 2007年,依托我校建设精品课程的契机,我们将C语言中的各个知识点进行重新规整,提出适用于三本院校学生的语言设计学习的方法。我们提出,先了解C语言,再学习C语言,再用C语言的思想。即在开始时让学生初步知道C语言,然后引入比较简单的运算符以及基本输入、输出和简单的顺序结构程序设计。通过这样的方式,我们发现,学生在C语言的学习就不会从开始的时候陷入大量难懂的语法、语义和数据结构中。有了以上铺垫再层层进入,最终进入复杂的各类数据结构以及指针等学习。通过以上的内容规整后,教学效果有明显提高。第三篇:《C语言程序设计》2011-2012-2A答案
第四篇:C语言程序设计
第五篇:C 语言程序设计