【习题1】
一、判断并改错
1.1 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
错误:main函数可以放在程序的任何位置。并不限定在程序的开头。
1.2 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1.3 scanf("%d,%d",&x,&y);的正确输入格式:3,4<;回车>。
一个完整的c语言程序正确
1.4 注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
二、编程题
2.1 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f
2.2 输入两个整数,输出其中最大者。
提示:模仿例1.3
【习题2】
一、单项选择题
1.1下面四个选项中,均是不合法的用户标识符的选项是(C)。
A)BA、x_0、do
B)float、1a0、_Y
C)x-y、goto、123
D)_123、tmp、CHAR
1.2下列选项中不正确的常数的选项是(D)。
A)0x12F B)-1.23E-2 C)12.0 D)0388
1.3下面正确的字符常量是(B)。
A)"a" B)'\\' C)"\n" D)"\376"
1.4下面正确的字符串常量是(C)。
A)'a' B)'376' C)"\\n" D)376
1.5 表达式'A'+4*25.0-'b'的正确结果是(B )。
A)67 B)67.0 C)不确定 D)67L
1.6 执行printf("%x",100);后的输出结果是(C )。
A)100 B)0x100 C)0X64 D)64
1.7 存储字符串"\\\'abc\376"需要的字节数是(D )。
A)11 B)13 C)6 D)7
【习题3】
一、计算题
3.1 2.8+7%3*11%2/4 (答案:2.8)
3.2 5/2+5.0/2+7%6 (答案:5.5)
3.3 a=12,a*=2+3 (答案:a=60)
3.4 a=3,b=4,c=5,a+b>c&&b= =c (答案:0)
3.5 3>5?3:5<8?25:40 (答案:25)
3.6 设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),计算表达式后m,n 的值? (答案:m=0,n=1)
3.7 设int b=7;float a=2.5,c=
4.7;求下面表达式的值。
a+(int)(b/2*(int)(a+c)/2)%4 (答案:4.5)
二、单项选择题
3.8 若有代数式bc
xy 8 ,则不正确的C 语言表达式是(C )。 A )x/b/c*y*8 B )8*x*y/b/c
C )8*x*y/b*c
D )x*y/c/b*8
3.9 有如下类型说明:
int k,a,b;
unsigned long w=8;
double x=2.9
则以下不符合C 语言语法的表达式是(A )。
A)x%(-3) B)w*=-2
C)k=(a=6,b=4,a-b) D)a*=a+=a-=(b=4)*(a=3)
3.10有如下类型说明:
float n;
int m;
则以下能实现将n中的数值保留小数点后两位,第三位四舍五入的表达式是(B)。A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0
3.11设k=7,x=12;则下列表达式值为3的是(D)。
A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)
3.12已知m=48,ch='a',n=0;则表达式(m>=n&&ch<'b'&&!n)的值是(B)。
A)0 B)1 C)真D)非0
3.13下面哪个式子在b为奇数时结果为假(C)。
A)a%2==1 B)!(a%2==0) C)!(a%2)D)a%2
3.13执行printf("%f",(x=3,y=5,x>y?1:1.5));后的输出结果是(D)。
A)语法错误B)1 C)1.5 D)1.500000
3.14能表示条件0≤x≤100的表达式是(D)。
A)0<=x<=100 B)x>=0,x<=100
C)0≤x≤100 D)x>=0&&x<=100
3.15判断char型变量ch为数字的正确表达式是(B)。
A)ch>="0"&&ch<="9" B)ch>='0'&&ch<='9'
C)'0'≤ch≤'9' D)ch>='0'||ch<='9'
三、编程题(应用条件运算)
3.16 输入一个整型成绩x,3.17 如果大于等于60分,3.18 输出“pass”,3.19 否则输出“fail”。提示:printf("%s",x>60?"pass":"fail");
3.17输入一个年份y,如果是闰年,输出“y is a leap year”,否则输出“y is not a leap year.”提示:printf("%d is %s",y%4==0&&y%100!=0||y%400==0?"a leap year.":"not a leap year."); 3.18输入三条边a,b,c,如果它们能构成一个三角形,输出“Y es”,否则输出“No”。
提示:printf("%s",a+b>c&&a+c>b&&b+c>a?"Y es":"No");
3.19输入三个数x,y,z,按从小到大的输出结果。
提示:分别用max0,min0代表最大、最小值,mid0表示中间值。
max0=(x>y?x:y)>z?(x>y?x:y):z;max0=(x<y?x:y)<z?(x<y?x:y):z;
mid0=x+y+z-max0-min0;
【习题4】
4.1编程实现,输入一个整数,判断它是否为偶数,并显示相应的信息。
提示:x代表输入的整数,if(x%2==0) printf("\neven");else printf("\nodd");
4.2 编程实现,输入一个平面上的点,判断它是否落在单位圆上,并显示相应的信息。提示:x,y代表平面坐标,if(x*x+y*y==1) printf("\nY es");else printf("\nNo");
4.3 编程实现,输入一个成绩等级(A-E),显示相应的百分制成绩段。
A: 90-100
B: 80-89
C: 70-79
D: 60-69
E: <60
提示:char grade;
if(grade=='A') printf("\n90-100");
else if(grade=='B') printf("\n80-89");
....
4.4 写出下面程序的运行结果:
#include<stdio.h>
main()
{
int a=-1,b=1,c=5;
switch(a>0){
case 1:switch(b-2<0){
case 1:printf("&");break;
case 2:printf("*");break;
}
case 0:switch(c= =5){
case 0:printf("!");break;
case 1:printf("#");break;
default:printf("%%");
}
default:printf("@");
}
}
运行结果:&#@
4.5 编程实现,使用循环结构打印以下图案。
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
提示:输出时,本图案要按向上三角形和向下三角形进行输出。每行输出中包括空格输出,‘*’号输出。输出空格和‘*’号个数要与行循环控制变量关联起来。
【习题5】
填空题:
5.1 若有定义int a[3][5];则排列在数组中的第9个元素是(a[1][3] )。
5.2 strlen("How are you\n")的值是( 12 )。
5.3 C语言中字符串结束的标志是( '\0' )。
5.4 写出一个名为s的单精度实型一维数组,长度是6,所有元素初值均为0,其数组定义语句是( float s[6]={0}; )。
5.5 strcmp("how","How")的值是( 32 或>0 )。
选择题:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论