- 程序设计基础教程:C语言
- 常东超 刘培胜 郭来德等编著
- 1542字
- 2025-02-17 17:28:19
习题
一、选择题
3.1 若a、b、c、d都是int型变量且初值为0,以下选项中不正确的赋值语句是( )。
A)a=b=c=100;
B)d++;
C)c+b;
D)d=(c=22)-(b++);
3.2 下列选项中不是C语句的是( )。
A){int i;i++;printf("%d\n",i);}
B);
C)a=5,c=10
D){;}
3.3 合法的C语言赋值语句是( )。
A)A=B=58
B)K=int(a+b)
C)a=58,b=58
D)--i;
3.4 使用getchar()函数时应在程序的开头嵌入的头文件是( )。
A)"math.h"
B)"stdio.h"
C)"alloc.h"
D)"dos.h"
3.5 有如下程序段:
char ch1,ch2;
ch1=getchar();
ch2=getchar();
putchar(ch1);
putchar(ch2);
若运行时输入:A B↙
则输出结果是( )。
A)AB
B)A B
C)A
D)AA
3.6 有以下程序
#include"stdio.h"
void main()
{ int x=10,y=3;
printf("%d\n",y=x/y);
}
执行后的输出结果是( )。
A)0
B)1
C)3
D)不确定的值
3.7 若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是( )。
A) read(a,b,c);
B) scanf("%d%d%d",a,b,c);
C) scanf("%D%D%D",&a,&b,&c);
D) scanf("%d%d%d",&a,&b,&c);
3.8 若变量已正确定义为float型,要通过输入语句:scanf("&f &f &f",&a,&b,&c);给a、b、c分别赋值为11.0、22.0、33.0,不正确的输入形式是( )。
A)11
22
33
B)11.0,22.0,33.0_
C)11.0
22.0 33.0
D)11 22
33
3.9 若变量a、b、t已正确定义,要将a和b中的数进行交换,以下选项中不正确的是( )。
A)a=a+b,b=a-b,a=a-b;
B)t=a;a=b;b=t;
C)a=t;t=b;b=a;
D)t=b;b=a;a=t;
3.10 若有正确定义语句double x=5.16894;
则语句printf("%f\n",(int)(x*1000+0.5)/(double)1000);的输出结果是( )。
A)输出格式不对
B)5.170000
C)5.168000
D)5.169000
3.11 若有以下程序段:
int c1=1,c2=2,c3;
c3=c1/c2;
printf("%d\n",c3);
执行后的输出结果是( )。
A)0
B)1/2
C)0.5
D)1
3.12 若有以下程序段:
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);
执行后的输出结果是( )。
A)3,0,-10
B)0,0,5
C)-10,3,-10
D)3,0,3
3.13 有以下程序段:
char ch; int k;
ch='a';k=12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k)
已知字符'a'的ASCII码值为97,则执行上述程序段后输出结果是( )。
A) 因变量类型与格式符的类型不匹配输出无定值
B) 输出项与格式描述符个数不符,输出为0值或不定值
C) a,97,12k=12
D) a,97,k=12
3.14 有以下程序段:
int a=1,b=1;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
运行时输入:12.36↙,则输出结果是( )。
A)a=12,b=36
B)a=12.36,b=1
C)a=12,b=1
D)a=12,b=0
3.15 有以下程序段:
int a;
float b;
scanf("%2d%1f",&a,&b);
printf("%d,%f\n",a,b);
运行时输入:876543.0,则输出结果是( )。
A)87,6.000000
B)876,543.000000
C)76,543.00000
D)87,6543.000000
3.16 若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是( )。
A)*p=&a;scanf("%lf",p);
B)*p=&a;scanf("%f",p);
C) p=&a;scanf("%lf",*p);
D) p=&a;scanf("%lf",p);
二、填空题
3.17 若有以下定义,请写出输出结果。
int i=-200,j=2500;
printf("(1)%d,%d".i.j);
printf("(2)i=%d,j=%d\n",i,j);
printf("(3)i=%d\nj=%d\n",i,j,);
3.18 变量i、j、k已定义为int型且初值为0,用以下语句进行输入:
scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);
从键盘输入:12.3↙,则i、j、k的值分别是 。
3.19 复合语句在语法上被认为是 ,空语句的形式为 。
3.20 C语句的最后用 结束。
3.21 以下程序段是要求scanf语句给变量赋值,写出运行时给k、a、x分别输入100、15.81、1.89234时的三种输入形式。
int k;float a;double x;
scanf("%d%f%lf",&k,&a,&x);
printf("k=%d,a=%f,x=%f\n",k,a,x);
三、编程题
3.22 从键盘输入一个小写字母,用大写形式输出该字母。
3.23 输入任意一个三位数,将其各位数字反序输出。
3.24 编写程序,读入三个整数给a、b、c,然后交换它们中的数,交换原则:a给b、b给c、c给a,然后输出a、b、c。