资源描述
12)计算机能直接执行程序是(B )。
A)源程序 B)目的程序 C)汇编程序 D)可执行程序
13)如下论述中对的是( D )
A)程序设计任务就是编写程序代码并上机调试
B)程序设计任务就是拟定所用数据构造
C)程序设计任务就是拟定所用算法
D)以上三种说法都不完整
例年模仿真题:
#include<stdio.h>
main()
{
Int a;
A=5; /*给A变量赋值5
A+=3; 再赋值后再加3*/
Printf(“%d”,a);
}
(11)如下论述中对的是( C )。
A)C 程序基本构成单位是语句 B)C 程序中每一行只能写一条语句
C)简朴C 语句必要以分号结束 D)C 语句必要在一行内写完
(11)如下论述中对的是( C )
A)C程序中注释只能出当前程序开始位置和语句背面
B)C程序书写格式严格,规定一行内只能写一种语句
C)C程序书写格式自由,一种语句可以写在多行上
D)用C语言编写程序只能放在一种程序文献中
(12)如下选项中,能用作顾客标记符是( C )
A)void
B)8_8
C)_0_
D)unsigned
【解析】 A:核心字不可以B:不以数字开头C:对的 D:核心字
(13)如下选项中合法标记符是( C )
A) 1-1 B)1—1 C)-11 D)1—
【解析】 A:不以数字开头,浮现非法字符 - 而不是 _ B:不以数字开头,非法字符C:对的 D:不以数字开头,浮现非法字符
(14)如下选项中不合法标记符是 ( C )
A)print B)FOR C)&a D)_00
【解析】 C:浮现非法字符&
(15)如下选项中,能用作数据常量是 ( D )
A)o115 B) 0118 C)1.5e1.5 D) 115L
【解析】 A:八进制以0开头而不是以o开头 B:八进制最大值为7,范畴0-7 C:指数必要为整数 D:长整型对的
(13)如下选项中不能作为C 语言合法常量是( A )。
A)'cd' B)0.1e+6 C)"\a" D)'\011'
【解析】 A:字符常量只能有一种字符
(16)如下选项中不属于字符常量是 ( B )
A)'C' B)"C" C)'\xCC0' D)'\072'
【解析】 B:字符常量以单引号作为标志,其为字符串
(14)表达式:4-(9)%2值是( B )
A)0
B)3
C)4
D)5
【解析】(9)%2=1(取余),4-1=3
(14)设变量已正拟定义并赋值,如下对的表达式是 ( C )
A)x=y*5=x+z
B)int(15.8%5)
C)x=y+z+5,++y
D)x=25%5.0
【解析】 A:等号左边必要为变量,不可觉得表达式,y*5是表达式 B:%只合用于整型变量 D:%只合用于整型变量
(15)若有定义语句:int x=10;,则表达式x-=x+x值为( B )
A)-20
B)-10
C)0
D)10
【解析】 先算右边得20,x-=20,则10-20=-10
(14)设有定义:int x=2;,如下表达式中,值不为6是 ( D )
A) x*=x+1 x=x*(x+1)
B) x++,2*x
C)x*=(1+x)
D)2*x,x+=2
【解析】 逗号表达式最后成果看最后一种表达式,x+=2,成果为4
(17)若变量均已正拟定义并赋值,如下合法C语言赋值语句是 (A)
A)x=y==5;
B)x=n%2.5;
C)x+n=I
D)x=5=4+1;
【解析】等号左边必为变量,不能为常量或数字排除C 、D,%只能用于整数排除B
第三章 输入输出
习题解说
(13)阅读如下程序
#include
main()
{ int case;float printF;
printf(“请输入2个数:”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f\n”,case,printF);
}
该程序编译时产生错误,其犯错因素是( A )
A)定义语句犯错,case是核心字,不能用作顾客自定义标记符
B)定义语句犯错,printF不能用作顾客自定义标记符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无错,printf不能输出case值
(16)有如下程序
#include
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\n”,a=2*b);
}
程序运营后输出成果是 ( D )
A)0,0
B)1,0
C)3,2
D)1,2
【解析】b=a+b即b=1,a=2*b,a=2
(15)程序段:int x=12;
double y=3.141593; printf(“%d%8.6f”,x,y);输出成果是 ( A )
A)123.141593
B)12
3.141593
C)12,3.141593
D)12 3.141593
【解析】“%d%8.6f”原样输出,没有,也没有空格,因此x与y相连,小数总共8位,小数点之后6位
#include <stdio.h>
main()
{
double a=123.456;
printf("%6.2f",a);
}
成果:123.46
例题:
int x;
x=11/3;
int y=5;
printf("%%d,%%%d\n",x,y); 成果是:%d,%3
【解析】"%%d,%%%d\n"原样输出,%%d中第一种%为转义字符,不是输出占位符,因此原样输出%d,然后%%转义只输出一种%,%d\n只有一种占位符,因此只输出x值为3
[3.5] 若变量已对的阐明为int类型,要给a、b、c输入数据,如下对的输入语句是( D )
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);
【解析】scanf中赋值必要用&(取地址符),即将输入字符放在指定位置中
[3.6] 若变量已对的阐明为float类型,要通过如下赋值语句给a赋予10、b赋予22、c赋予33,如下不对的输入形式是( B )
A)10 B)10.0,22.0,33.0 C)10.0 D)10 22
22 22.0 33.0 33
33
scanf(“ %f %f %f” ,&a,&b,&c);
【解析】输入时可以空格可以回车,但是不可以浮现,
复合语句:各种语句被{}括起来,当成一条语句来执行。
空语句:最后表达只有一种;
程序举例:
1。编写一种程序,从键盘上输入两个数字,让后让她们互换一下。
#include<stdio.h>
main()
{
int a,b;
printf("请输入两个数字:");
scanf("%2d%3d",&a,&b);
printf("qian:%d %d",a,b);
int c;
c=a,a=b,b=c;
printf("后:%d %d",a,b);
}
2。编写程序,对一种double型数据进行四舍五入运算。规定保存两位有效数字。
123.4567
两种算法:
(1)
#include <stdio.h>
main()
{
double k=1234.4567;
k+=0.005;
printf("%7.2f",k);
}
(2)
#include <stdio.h>
main()
{
double k=1234.4567;
k*=100;
k+=0.5;
k=(int)k;
k/=100;
printf("%7.2f",k);
}
3。编写程序,使从键盘中输入三位数倒着输出。
#include <stdio.h>
main()
{
int a,three,two,one;
printf("请输入一种三位数:");
scanf("%d",&a);
three=a/100; //取出百位
two=a%100/10; //取出十位
one=a%10; //取出个位
printf("%d%d%d",one,two,three);
}
选取题
[3.1] 若a、b、c、d、都是int类型变量且初值为0,如下选项中不对的赋值语句是( C )
A)a=b=c=d=100; B)d++; C)c+b; D)d=(c=22)-(b++);
【解析】C是表达式,无法完毕赋值
[3.2] 如下选项中不是C语句是( C )
A){int i; i++; printf(“%d\n”,i);} B);
C)a=5,c=10 D){ ;}
【解析】C是表达式,没有 ;结尾,只有;语句是空语句
[3.3] 如下合法C语言赋值语句是( D )
A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)--i;
【解析】语句必要以;结尾,B中强制类型转换对的写法为k=(int)(a+b);
[3.4] 如下程序输出成果是( C )
A)0 B)1 C)3 D)不拟定值
main( )
{ int x=10,y=3;
printf(“%d\n”,y=x/y);}
【解析】除法并且两边都为整型,最后也是整型
[3.7] 若变量已正拟定义,要将a和b中数进行互换,下面不对的语句组是( D )
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.8] 若变量已正拟定义,如下程序段输出成果是( D )
A) 输出格式阐明与输出项不区配,输出无定值 B)5.17
C)5.168 D)5.169
X=5.16894;
Printf(“ %f\n”,(int)(x*1000+0.5)/(float)1000);
【解析】其上市四舍五入发,保存3位有效数字
[3.9] 若有如下程序段,c3中值是( A )
A)0 B)1/2 C)0.5 D)1
int c1=1,c2=2,c3;
c3=c1/c2;
【解析】不够除,商0
[3.10] 若有如下程序段,其输出成果是( B )
A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“ %d,%d,%d\n”,a,b,c);
【解析】a-=a-5得a=5,赋值给c=5,背面将b赋值给a,a=0,b+3执行了,但是并没有变化b值
辨析:
int a=0,b=0,c=0;
c=((a-=a-5),(a=b,b+3));
printf(" %d,%d,%d\n",a,b,c);
【解析】a-=a-5得a=5,没有赋值给c,背面将b赋值给a,a=0,b+3执行后赋值给了c;由于逗号表达式永远是最后一种逗号后值赋值给c,只是相差一种(),成果就不同了。
填空题
[3.21] 若有如下定义,请写出如下程序段中输出语句执行后输出成果。
(1)-200,2500(2)i=-200,j=500 (3)i=-200 回车 j=2500
int i=-200,j=2500;
printf(“ (1) %d %d”,i,j);
printf(“ (2) i=%d,j=%d\n” ,i,j);
printf(“ (3) i=%d\n j=%d\n”,i,j);
[3.22] 变量i、j、k已定义为int类型并有初值0,用如下语句进行输入时
scanf(“ %d”,&i); scanf(“ %d”,&j); scanf(“ %d” ,&k);
当执行第一种输入语句,从键盘输入:
12.3<CR> <CR>表达Enter键
则变量i、j、k值分别是____12____、____0___、__0____。
【解析】由于只输入一种数,并且定义i为整型,因此会自动将12.3进行截断,变成12
[3.23] 复合语句在语法上被认为是 一条语名。空语句形式是 ;
[3.24] C语句最后用 ;结束。
[3.25] 如下程序段,规定通过scanf语句给变量赋值,然后输出变量值。写出运营时给k输入100,给a输入25.81,给x输入1.89234 时三种也许输入形式_____、_____、_____。
int k;float a; double x;
scanf(“ %d%f%lf”,&k,&a,&x);
pirntf(“ k=%d,a=%f,x=%f\n”,k,a,x);
以空格隔开输入
以回车隔开输入
回车和空格连用输入
编程题和改错题
[3.29] 如下程序多处有错。要按下面指定形式输入数据和输出数据时,请对该程序做相应修改。
main
{double a,b,c,s,v;
printf(input a,b,c:\n);
scanf(“%d%d%d”,a,b,c);
s=a*b; /*计算长方形面积*/
v=a*b*c; /*计算长方体体积*/
printf(“%d %d %d”,a,b,c);
printf(“s=%f\n”,s,”v=%d\n”,v);
}
当程序执行时,屏幕显示和规定输入形式如下:
input a,b,c:2.0 2.0 3.0 此处2.0 2.0 3.0是顾客输入数据
a=2.000000,b=2.000000,c=3.000000 此处是规定输出形式
s=4.000000,v=12.000000
代码改成如下:
#include <stdio.h>
main()
{float a,b,c,s,v;
printf("input a,b,c:\n");
scanf("%f %f %f",&a,&b,&c);
s=a*b; /*计算长方形面积*/
v=a*b*c; /*计算长方体体积*/
printf("%f %f %f\n",a,b,c);
printf("s=%f,v=%f\n",s,v);
}
[3.30] 编写程序,把560分钟换算成用小时和分钟表达,然后进行输出。
#include <stdio.h>
main()
{
int minute=560,hour;
hour =minute/60;
minute %=60;
printf("560分钟=%d小时%d分钟 \n",hour,minute);
}
[3.31] 编写程序,输入两个整数:1500和350,求出它们商数和余数并进行输出。
#include <stdio.h>
main()
{
int a,b,result,redundancy;
printf("请输入两个整数:\n");
scanf("%d%d",&a,&b);
result=a/b;
redundancy=a%b;
printf("a/b商为:%d,余数为:%d\n",result,redundancy);
}
[3.32] 编写程序,读入三个双精度数,求它们平均值并保存此平均值小数后一位数,对小数点后第二位数进行四舍五入,最后输出成果。
#include <stdio.h>
main()
{
double a,b,c,avg;
printf("请输入三个双精度小数:\n");
scanf("%lf%lf%lf",&a,&b,&c);
avg=(a+b+c)/3;
printf("四舍五入之前三个数平均数为:%lf\n",avg);
avg *=10;
avg +=0.5;
avg =(int)avg;
avg /=10;
printf("四舍五入之后三个数平均数为:%.1lf\n",avg);
}
[3.33] 编写程序,读入三个整数给a、b、c,然后互换它们中数,把a中本来值给b,把b中本来值给c, 把c中本来值给 a。
#include <stdio.h>
main()
{
int a,b,c,t;
printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
printf("互换位之前,a=%d,b=%d,c=%d\n",a,b,c);
t=c;
c=b;
b=a;
a=t;
printf("互换位之后,a=%d,b=%d,c=%d\n",a,b,c);
}
展开阅读全文