错题集

错题集

一、判断题
1.数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号。
T F
评测结果:答案错误
正确答案:T

2.对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同。
T F
评测结果:答案错误
正确答案:T
【解析】两种不同的写法,本质都是取那个地址存在的值

3.在C语言中能逐个地使用下标变量,也能一次引用整个数组。
T F
评测结果:答案错误
正确答案:F

4.假设有定义如下: int array[10]; 则该语句定义了一个数组array。其中array的类型是整型指针(即: int *)。
T F
评测结果:答案错误
正确答案:F

5.一维数组定义的一般形式如下,其中的类型名指定数组变量的类型。
类型名 数组名[数组长度];
T F
评测结果:答案错误
正确答案:F
【解析】类型说明符 数组名 [常量表达式];

6.对于定义int a[5];可以通过语句scanf("%d",a);输入全部元素的值。
T F
评测结果:答案错误
正确答案:F

7.指针可以加上或减去一个int型数,也可以加上一个指针。
标准答案:N 我的答案:Y

8.两个指针在任何情况下相减都是有意义的。
标准答案:Y 您的答案:N

9.C语言的基本组成单位是语句 ( )
标准答案:N 您的答案:Y
C语言的基本组成单位是函数

10.C 语言中的变量名不区分大小写。 ( )
标准答案:N 您的答案:Y

11.C语言中,在进行混合运算时,数据类型由高级向低级转换。
标准答案:N 您的答案:Y
【分析】应该是低级向高级转化
char --> short --> int --> long --> unsigned long --> float --> double
系统这样处理会避免数据精度的丢失

12.C 语言中在字符型变量可以存放一个字符串。 ( )
标准答案:N 您的答案:Y
【分析】char类型在内存中占一个字节,只能存放一个字符,如果要存放多个,就要用字符数组或字符串。

13.C语言中,关键字及编译预处理命令用小写字母书写。
标准答案:Y 您的答案:N

14.int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。 (1分)
T F
正确答案:F
【分析】int (*p)[4]这儿的p是一个指针变量,它指向的是含4个元素的一维数组

15.结构体成员的类型必须是基本数据类型。 (1分)
T F
正确答案:F
【分析】不是必须,也可以是自定义类型
二、选择题
1。对于定义 char str[] = “abc\000def\n”(注:其中0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是:
A. 12 ,13
B. 3 ,11
C. 3 ,9
D. 3 ,4
评测结果:答案错误
正确答案:C
【解析】字符串长度是指字符串所含的字符个数,但不包括最后的’\0’,’\n’是转义字符,要包括在其中。

2.若有定义char str[]={“Python”, “SQL”, “JAVA”, “PHP”, “C++”}; 则表达式str[1] > *str[3]比较的是:
A. 字符P和字符J
B. 字符串SQL和字符串PHP
C. 字符串Python和字符串JAVA
D. 字符S和字符P
评测结果:答案错误
正确答案:D
【分析】str[1]和str[3]比较的是这两个字符串的第一个字符

3.如果变量定义如下,则正确的语句是( )。
int i, j, tab[3][4];

A. tab[0][ ] = 0;
B. tab[ ][3] = 3;
C. tab = 100;
**D.

 for(i = 1; i <= 3; i++){
   
   for(j = 1; i <= 4; j++){
   
       scanf(%d ”, &a[i][j];
   }
}**

E.

for(i = 0; i < 3; i++){
   
  for(j = 0; j < 4; j++){
        
       printf("%4d", tab[i][j]); 
     }
     printf("\n");        
 }

评测结果:答案错误
正确答案:E

3.若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是( )。
A: (exp0)
B: (exp!=0)
C: (exp
1)
D: (exp!=1)
标准答案:B 我的答案:C
【分析】exp 是一个变量。这个条件表达式的意思是,如果(exp)为真,则执行a++,否则执行b–。而只要变量exp的值不为0(也就是false),(exp)都为真(true)。比如exp2或者exp-1,(exp)都为真。所以(exp)等价于(exp!=0),也就是使用 (exp!=0)?a++:b-- 程序也能达到同样的效果。所以选B。

4.请阅读以下程序:

main()
{
   
   int a=5,b=0,c=0;
   if(a=b+c) printf(***\n”);
   else      printf(“$$$\n”);
}

以上程序( )。
A: 有语法错不能通过编译
B: 可以通过编译但不能通过连接
C: 输出***
D: 输出$$$
标准答案:D 我的答案:A
【解析】解答本题时,先判断if语句,因为 a=b+c不成立,则执行else语句。

5.在下面的条件语句中(其中S1和S2标识C语言语句)一个功能上与其他三个语句不等价的是()
A: if(a)S1;else S2
B: if(a0)S2;else S1
C: if(a!=0)S1;else S2
D: if(a
==0)S1;else S2
标准答案:D 我的答案:C

6.设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为( )
A: 1
B: 2
C: 3
D: 4
标准答案:B 我的答案:A
【分析】因为是&&运算,所以先看前段.m=a>b,=的优
先级小于>,a>b不成立,m=0;在&&运算中,如果
出现一边为假的情况下,结果直接为假,后面的
语句不会去运算了.

7.以下程序的输出结果是( )。

main()
{
   int x
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值