sum=a*n+n*(n-1)*d/2; printf(“ sum=%d\\n”,sum); }
9. 编写程序,将d天h小时m分钟换算成分钟,输入d、h、m,输出换算结果。
解:#include <>
void main() {
int d,h,m,t;
printf(“请输入天 小时 分钟\\n”); scanf(“%d%d%d”,&d,&h,&m); t=d*24*60+h*60+m;
printf(“%d天%d小时%d分钟=%d分钟\\n”,d,h,m,t); }
10. 编写程序,求出给定半径r的圆以及内接正n边形的面积,输出计算结果。r和n的值由键盘输入。
解:#include <>
#include <> #define PI
void main() {
double r,s1,s2; int n;
printf(“Input r n\\n”); scanf(“%lf%d”,&r,&n); s1=PI*r*r;
s2=n/*r*r*sin(2*PI/n);
printf(“圆面积=%f,正内接%d边形面积=%f\\n”,s1,s2); }
习 题 4
一、单项选择题
1.下列语句将小写字母转换为大写字母,其中正确的是( )。
A.if(ch>='a'&ch<='z')ch=ch-32; B.if(ch>='a'&&ch<='z')ch=ch-32; C.ch=(ch>='a'&&ch<='z')ch-32:' '; D.ch=(ch>'a'&&ch<'z')ch-32:ch;
2.下列各语句中,能够将变量u、s中最大值赋给变量t的是( )。
A.if(u>s)t=u;t=s; B.t=s;if(u>s)t=u; C.if(u>s)t=s;else t=u D.t=u;if(u>s)t=s;
3.假设变量x、k都已定义,下列语句片段中,无语法错误的是( )。
A. switch(x){
case x>=90: putchar('A'); case x<60: putchar('E'); }
B. switch(x) {
case 1+2: k='A'; defualt: k='E'; case 2*4: k='B'; }
C. switch(x){
case 2+x: k=x-2; case 3*x: k=x+3; default: k=0; }
D. switch(x){
case : k=*x; case : k=8*x; default: k=0; }
*4.与语句while(!s )中的条件等价的是( )。
A.s==0 B.s!=0 C.s==1
5.下列语句中,哪一个可以输出26个大写英文字母( )。
A.for(a='A';a<='Z';printf(\,++a)); B.for(a='A';a<'Z';a++)printf(\,a); C.for(a='A';a<='Z';printf(\,a++)); D.for(a='A';a<'Z';printf(\,++a));
6.判断下面的while循环体的执行次数( )。
i=0; k=10;
while( i=8 ) i=k––; A.8次 B.10次 C.2次
解:(1) B (2) B (3) B (4) A (5) C (6) D 二、写出下列程序的输出结果 1.#include <>
void main() {
D.s=0
D.无数次
* * * * * char x; * * * * * * * * int n=0,k=0; * * * * * * * * * * * * while((x=getchar())!='#'){ 0
* * * * * x?y?zcs?* * * * * n ?* s* 面积(s?x)(s?y)(s?z) 1 * 1111n * * 2.3f1??????n前40°22 111x?y?234x5??60y??0x?0?1* F3s?1????.....-3-n-1-2??23!22!4!10101010x?0 1In2In3In4Inf(x)??0年信息查询元旦x?0 y2.?0?x?yf(x,y)??是星期几信息查 3. 程序结束\\n”); x?0???1x??0y?0printf(“请输入年份:\\n”); ?x?yscanf(“%d”,&year); ?x?0y??0?x?yprintf(“请选择功能:\\n”); scanf(“%d”,&number); if(number==1)
{ year=legal(year); leapyear(year);
}
if(number==2)
{ week=judgeweeknumber(year); judgeweekchinese(week); }
if(number==3) return;
}
int legal(int y) { if(y<0) do {
printf(“请重新输入一个年份:”); scanf(“%d”,&y);
} while(y<0); return y; }
void leapyear(int y) {
if(y%4==0&&y0!=0||y@0==0) printf(“%d是闰年\\n”,y); else
printf(“%d不是闰年\\n”,y);
}
int judgeweeknumber(int y) { int week;
week=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;
return week; }
void judgeweekchinese(int week) { switch(week)
{ case 0: printf(“星期天”); break; case 1: printf(“星期一”); break; case 2: printf(“星期二”); break; case 3: printf(“星期三”); break; case 4: printf(“星期四”); break; case 5: printf(“星期五”); break; case 6: printf(“星期六”); break; } }
*14.输入n、x,计算xn 输出。要求定义一个递归函数计算xn 。
解:#include<>
double mypow(double x,int n) {
double y=1; if (n>0)
return(x*mypow(x,n-1)); else
if (n<0) return(1/x*mypow(x,n+1)); else return 1; }
void main() { double x; int n;
printf(“请输入x n:\\n”); scanf(\ printf(\ }
*15.数列的第1、2项为1,此后各项为前两项之和。编制求数列中任何一项值的递归函数。
解:此数列为1、1、2、3、5、8、13 ……。
#include<> int f(int n)
{ if (n==1||n==2) return (1); else
return (f(n-1)+f(n-2)); }
void main() { int n;
while(scanf(\
printf(\数列第%d项为:%d\ }
习 题 5
一、单项选择题
1.下列能正确定义一维数组a的语句是( )。
A.int a(10); B.int n=10,a[n]; C.int n;scanf(\,&n); D.#define n 10
int a[n]; int a[n];
2.若有定义语句“int a[10];”则下列对a中数组元素正确引用的是( )。
A.a[10/2–5] B.a[10] C.a[] D.a(1)
3.能对一维数组正确初始化的语句是( )。
A.int a[6]={6*1}; B.int a[6]={1,,,3}; C.int a[6]={}; D.int a[6]=(0,0,0);
4.以下能正确定义二维数组的语句为( )。
A.int a[][]; B.int a[][4]; C.int a[3][]; D.int a[3][4];
5.若有数组定义语句“int a[4][5];”,则对a中数组元素的正确引用是( )。
A.a[4][1] B.a[2,1] C.a[4][5] D.a[4–1][5–5]
6.以下能对二维数组a进行正确初始化的语句为( )。
A.int a[2][]={{1},{4,5}}; B.int a[2][3]={1,2,3,4,5,6,7}; C.int a[][]={1,2,3,4,5,6}; D.int a[][3]={1,2,3,4,5};
7.下列对字符数组s的初始化不正确的是( )。
A.char s[5]=\; B.char s[5]={'a','b','c','d','e'}; C.char s[5]=\; D.char s[]=\;
8. 下列程序段的运行结果为( )。
char s[]=\ A.ab0 B.ab C.Abcd
9.下列数组s中所存放字符串的长度为( )。
char s[]=\
D.ab cd
A.9 B.10 C.11 D.18
10.有数组定义语句“char a[20];”,则正确的输入语句为( )。
相关推荐: