C语言精选试题

本文探讨了C语言中的表达式计算规则,包括变量类型转换、运算优先级和逗号运算符的使用。同时,讲解了ASCII码与字符变量的关系,以及浮点数的存储和取值精度问题。还涉及到了输入输出格式控制和`scanf`、`printf`函数的使用技巧。
摘要由CSDN通过智能技术生成

答案后期更新,如果迫切需要,请博客评论区留言

—————————————————————————————
**2.3 假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b)的值是 **
A)7     B)8     C)5     D)2

2.21 已知各变量的类型说明如下,则不符合 C 语言语法规定的表达式是 。

int k,a,b; 
unsigned long w=5; 
double x=1.42; 

A)x%(-3)
B)w+=-2
C)k=(a=2,b=3,a+b)
D)a+=a-=(b=4)*(a=3)

2.22 已知各变量说明如下,则符合 C 语言语法规定的表达式是 。

int i=8,k,a,b; 
unsigned long w=5; 
double x=1.42,y=5.2; 

A)a+=a-=(b=4)*(a=3)     B)a=a*3=2     C)x%(-3)     D)y=float(i)

2.24 以下正确的叙述是 。
A)在 C 程序中,每行只能写一条语句
B)若 a 是实型变量,C 程序中允许赋值 a=10,因此实型变量中允许存放整型数
C)在 C 程序中,无论是整数还是实数,都能被准确无误地表示
D)在 C 程序中,%是只能用于整数运算的运算符

**2.26 已知字母 A 的 ASCII 码为十进制数 65,且 c2 为字符型,则执行语句 c2=‘A’+‘6’-‘3’; 后,c2 的值为 。
A)D          B)68           C)不确定的值           D)C

2.30 若有说明语句:char c=’\72’;则变量 c 。
A)包含 1 个字符。
B)包含 2 个字符。
C)包含 3 个字符。
D)说明不合法,c 的值不确定。

2.31 若有定义:int a=7; float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4 的值是 。

A)2.500000       B)2.750000       C)3.500000      D)0.000000

*2.32 sizeof(float)是 。
A)一个双精度型表达式
B)一个整型表达式
C)一种函数调用
D)一个不合法的表达式

*2.33设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为 。
A)int           B)float           C)double           D)不确定

2.34 下面四个选项中,均是非法常量的选项是

*2.35 若有代数式√y^x+log10y,则正确的 C 语言表达式是
A) sqrt(fabs(pow(y,x)+log10(y)))
B) sqrt(abs(pow(y,x)+log10(Y)))
C) sqrt(fabs(pow(x,y)+log10(y)))
D) sqrt(abs(pow(x,y)+log10(y)))

*2.37 在 C 语言中,char 型数据在内存中的存储形式是 。
A)补码        B)反码        C)原码        D)ASCII 码

2.38设变量n 为 float,m为 int 类型,则以下能实现将n 中的数值保留小数点后两位,第三 位进行四舍五入的表达式是 。
A)n=(n100+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
(总结:强制类型转换不会有四舍五入)

2.42 若有以下定义,则能使值为 3 的表达式是 。
(建议做题时把所有值计算出来)
intk=7,x=12;
A)x%=k%=5     
B)x%=k-k% 5     
C)x%=(k-k%5)     
D)(x%=k)-(k%=5)

2.43 设以下变量均为 int 类型,则值不等于 7 的表达式是 。
A)x=y=6,x+y,x+1
B)x=y=6,x+y,y+1
C)x=6,x+1,y=6,x+y
D)y=6,y+1,x=y,x+1

2.45 在 C 语言中(以 16 位 PC 机为例),一个 float 型数据在内存中所占的字节数为【】; 一个 double 型数据在内存中所占的字节数为【】。

2.46 若有以下定义,intm=5,y=2;则计算表达式 y+=y-=m*=y 后 y 的值是【 】。

*2.49    C 语言所提供的基本数据类型包括:单精度型、双精度型、【】、【】和【】

*2.50 若 s 是 int 型变量,则表达式 s%2+(s+1)%2 的值为【 】。

*2.51 若 a 是 int 型变量,则表达式(a=4*5,a*2),a+6 的值为【 】。

*2.52 若 x 和 a 均是整型变量,则计算表达式(1)后的 x 值为【】,计算表达式(2)后 x 的 值为【】。
(1)x=(a=4,6*2)
(2)x=a=4,6*2

(总结:逗号表达式计算时从左至右依次计算)

2.56 若 x 和 n 均是 int 型变量,且 x 和 n 的初值均为 5,则计算表达式 x+=n++后 x 的值 为【】 ,n 的值为【】。

2.57 若有定义:int b=7;float a=2.5,c=4.7;则表达式 a+(int)(b/3*(int)(a+c)/2)%4 的值为【 】。

2.58 若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y 的值为

2.59 若有定义:char c=’\010’;则变量 c 中包含的字符个数为【 】

2.61 若有定义:int x=12,n=5;则计算表达式 x%=(n%=2)后 x 的值为【 】

*2.64 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’ 的值为【 】。

*2.70 假设 m 是一个三位数,从左到右用 a、b、c 表示各位的数字,则从左到右各个数 字是 bac 的三位数表达式是【 】。

3.3printf 函数中用到格式符%5s,其中数字 5 表示输出的字符串占用 5 列。如果字符串长 度大于 5,则输出按方式 【 】 ;如果字符串长度小于 5,则输出按方式 【 】 。

*3.4 已有定义 int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是 。
A)整型变量的输出格式符只有%d 一种
B)%x 是格式符的一种,它可以适用于任何一种类型的数据
C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的
D)%8lx 不是错误的格式符,其中数字 8 规定了输出字段的宽度

**3.11 已有如下定义和输入语句,若要求 a1,a2,c1,c2 的值分别为 10,20,A 和 B,当从 第一列开始输入数据时,正确的数据输入方式是 。

int  a1,a2;charc1,c2; 
scanf("%d%d",&a1,&a2); 
scanf("%c%c",&c1,&c2); 

A)1020AB
B)10□20AB
C)10□□20□□AB
D)10□20AB

*3.14 阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为 。

main() {
int x,y,z; 
scanf("%d%d%d",&x,&y,&z); 
printf("x+y+z=%d\n",x+y+z); }

A)x+y+z=48
B)x+y+z=35
C)x+z=35
D)不确定的值

*3.17 根据下面程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 。

main() {
char ch1,ch2,ch3; 
输入语句 printf("%c%c%c",ch1,ch2,ch3); 
} 

输入形式:A□B□C
输出形式:A□B

A)scanf("%c%c%c",&ch1,&ch2,&ch3);
B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);
C)scanf("%c%c%c",&ch1,&ch2,&ch3);
D)scanf("%c%c",&ch1,&ch2,&ch3);

3.19 以下能正确地定义整型变量 a,b 和 c 并为其赋初值 5 的语句是 。
A)int a=b=c=5; B)int a,b,c=5; C)int a=5,b=5,c=5; D)a=b=c=5;

*3.20 已知 ch 是字符型变量,下面不正确的赋值语句是 。
A)ch=‘a+b’; B)ch=’\0’; C)ch=‘7’+‘9’; D)ch=5+9

3.22 若有以下定义,则正确的赋值语句是 。

 int a,b;
 float x; 

A) a=1,b=2,      B)b++;      C)a=b=5      D)b=int(x);
(注:在c语言中赋值语句就是在赋值表达式后面加一个分号)

3.23 设 x、y 均为 float 型变量,则以下不合法的赋值语句为________。
A)++x;      B)y=(x%2)/10;      C)x*=y+8      D)x=y=0

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值