错题积累(一)——(大一上学期C语言)

1、用C语言编写的代码程序()。

A.可立即执行
B.是一个源程序
C.经过编译即可执行
D.经过编译解释才能执行
你的回答: C  (×)       参考答案:B

2、若一个void型函数定义中没有return语句,则调用

该函数时,函数______。 
A.没有返回值
B.返回若干个系统默认值
C.返回一个用户所希望的函数值
D.返回一个不确定的值
 你的回答: D  (×)       参考答案:A

3、设b=1234 , 执行“printf("%%d@%d",b);”语句,输出结果为( )。

A.1234
B.%1234
C.%%d@1234
D.%d@1234
 你的回答: C  (×)       参考答案:D

4、设有int a=255,b=8;则printf(“%x,%o\n”,a,b);的输出的是( )

A.255,8 
B.ff,10 
C.0xff,010 
D.输出格式错 
 你的回答: D  (×)       参考答案:B

5、已知:int a,b;对于下列if语句,正确的描述是______。
if(a=b) printf(“A is equal to B\n”);

A.在编译时,C编译程序能指出该语句有语法错误
B.在编译时,C编译程序不能指出该语句有语法错误
C.没有语法错误,但不能得到正确结果
D.以上选择都不对
 你的回答: B  (×)       参考答案:C

6、下面程序的输出是( )。

main()
{
   char x=040;
   printf("%d\n",x=x++);
}
A.32
B.33
C.40
D.41
 你的回答: B  (×)       参考答案:A

7、下列程序的输出结果是( )。

void main()
{
   int a=-1,b=4,k;
   k=++a+b--;
   printf("%d %d %d\n",a,b,k);
}
A.1 3 4
B.0 3 4
C.1 2 3
D.0 4 3 
你的回答: D  (×)       参考答案:B

8、两次运行下面的程序,如果从键盘上分别输入6和4,输出的结果是______。

void main()
{
   int x;

   scanf("%d",&x);
   if(x++>5)
      printf("%d\n",x);
   else 
      printf("%d\n",x--);
} 
A.7 5
B.7 4
C.6 5
D.6 4
 你的回答: B  (×)       参考答案:A

9、下面程序段运行结果是_________。

#include〈stdio.h〉
void main()
{
   int i;
   for(i=1; i<=5; i++){
      if(i%2)
         printf("*");
      else
         continue
      print("#");
   }
   printf("$\n");
} 
A.*#*#*#$
B.#*#*#*$
C.*#*#$
D.#*#*$
 你的回答: B  (×)       参考答案:A

10、阅读下列程序,则执行结果是

#include "stdio.h" 
main() 
{
   int a=0,b=0,c=0,i; 

   for(i=0;i<4;i++switch(i) 
      {
          case 0:a=i++; 
          case 1:b=i++; 
          case 2:c=i++; 
          case 3:i++;
      } 
      printf("%d,%d,%d,%d\n",a,b,c,i);
} 
A.0,1,3,4
B.1,2,3,4 
C.0,1,2,5
D.0,2,3,4 
 你的回答: B  (×)       参考答案:C

11、下列程序段执行结果是输出( )。

x=3; 
do 
{ 
   printf("%2d",x--);
}while(!x)

```bash
A.0
B.3
C.321
D.210
   你的回答: C  (×)       参考答案:B
解释:!是反运算符,单目,!真 即 假,!假 即 真。如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。
!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。

12、下列程序的功能是计算s=1+12+123+1234+12345,完善程序。

#include 
void main()
{
    int t,s,i;
    (1)   ;
    for(i=1;i<=5;i++){
        (2)   ;
            s=s+t;
    }
    printf("s=%d\n",s);
}
A.(1) s=0,t=1 (2) t=t+10*i
B.(1) s=0,t=1 (2) t=t*10+i
C.(1) s=0,t=0 (2) t=t*10+i
D.(1) s=1,t=1 (2) t=t+10*i
 你的回答: B  (×)       参考答案:C

13、运行以下程序,当输入“china?”时,程序的执行结果是_________。

#include〈stdio.h〉
void main()
{
   while(putchar(getchar())!=?);
}
A.china
B.dijob
C.dijiob?
D.china?
 你的回答: A  (×)       参考答案:D
 如果输入 china?? 输出china?

14、程序功能:输入一个十进制整数,将它对应的二进制数各位反序,形成新的十进制数输出。例如:(13)10→(1101)2→(1011)2→(11)10。

#include 〈stdio.h〉
void main()
{
   int x,y,t;
   printf("请输入一个整数:");
   scanf("%d",&x);
   y=0;
   while(){
      t=x%2;;
      x=x/2;
   }
   printf("新的整数为%d\n",y);
}
A.①x==0 ② y=y*2+t
B. ①x!=0 ② y=y*2+t
C. ①x!=0 ② y=y*10+t
D. ①x==0 ② y=y*10+t
 你的回答: C  (×)       参考答案:B

15、以下程序的输出结果是_________.

#include <stdio.h>
main()
{
    int a=2,i;
    for(i=0;i<3;i++)
        printf("%d",func(a));
}
func(int a)
{
    int b=0;
    static c=3;
    b++;c++;
    return(a+b+c);
}
A.777
B.7 8 9
C.789
D.7 7 7
你的选项:A  (×)  参考答案:C

16、以下程序的输出结果是______

#include 〈stdio.h〉
#define  PT  5.5
#define  S(x)  PT*x*x
void main()
{
   int a=1,b=2;
   printf("%4.1f\n",S(a+b));
}
A.10.5
B.9.5
C.10.0
D.9.0
你的选项:A  (×)  参考答案:B

17、定义如下字符数组c,则字符数组c的长度是______。
char c[]="\t\v\\0will\n";

A.9
B.10
C.11
D.12
?:字符串以'\0'结束,总长+1。
 你的回答: A  (×)       参考答案:B

18、若有定义: int a[3][4], 则对数组 a 元素的正确引用是_______ 。

A.a[2][4]
B.a[1,3]
C.a(2)
D.a[10-10][3]
 你的回答: A  (×)       参考答案:D

19、下面能正常定义数组的是:

A.int a[10]={0;1;2;3;4;5;6;7;8;9};
B.int a(10)={10};
C.int a[ ]={0};
D.int a[n]={10*1};
 你的回答: B  (×)       参考答案:C

20、下列对字符数组s初始化为字符串"abc",其中不正确的是_________ 。

A.char s[5]="abc";
B.char s[5]={'a','b','c','\0'};
C.char s[5]={"abc"};
D.char s[5]={'a','b','c'}
 你的回答: C  (×)       参考答案:D

21、字符‘0’的ASCII代码值是十进制数48,数组的第0个元素在低位,以下程序的输出结果是______。

#include<stdio.h>
void main()
{
   union{
      int i[2];
      long k;
      char c[4];
   }r,*s=&r;
   s->i[0]=0x39;
   s->i[1]=0x38;
   printf("%x\n",s->c[0]);
}
A、39
B、9
C、38
D、8
解释:因为这里r是一个联合,联合里面包含了很多成员但是每次却只能用其中的一个。
在给里面的i赋值后,程序却要打印c的值。此时,c中是没有值的,但因为i和c都是数组,代表的是数组首地址,所以此时打印c会将i中的值强制以char型打印出来。
于是,c[0]作为字符打印0x39这个值,因为0x39的十进制是57,刚好是字符‘9’的ascII码。
于是打印结果是9.

22、下面程序的输出结果是_________。

#include <stdio.h>
void main()
{
   char *p[ ]={"mop","book","w","op"};
   int i;
   for(i=3;i>=0;i--,i--)
      printf("%c",*p[i]);
}
A.ob
B.opbook
C.op
D.owb
 你的回答: B  (×)       参考答案:A

23、函数功能是交换x和y的值,且通过正确调用返回交换结果。能正确实现此功能的函数是_______。

A.funa(int *x,int *y){ int p;p=*x;*x=*y;*y=p; }
B.funb(int x,int y){ int t;t=x;x=y;y=t; }
C.func(int *x,int *y){ *x=*y;*y=*x; }
D.fund(int x,int y){ *x=*x+*y;*y=*x-*y;*x=*x-*y; }
 你的回答: B  (×)       参考答案:A

24、下列程序的运行结果是______。

#include "stdio.h"
void change(int *x,int y)
{
   int t;
   t=*x;
   *x=y;
   y=t;
}
void main()
{
   int a=3,b=5;
   change(&a,b);
   printf("a=%d,b=%d\n",a,b);
}
A.a=5,b=3
B.a=3,b=5
C.a=3,b=3
D.a=5,b=5
 你的回答: A  (×)       参考答案:D

25、下面定义了一个通信录结构friends_list、结构变量friend1,正确使用结构变量friend1的语句是

struct friends_list{
	int num;             //编号
	char name[10];       //姓名
	char telephone[13];  //电话
	int  age;            //年龄
}friend1;
A.friend1.name="xiaojie";
B.friend1->name="xiaojie";
C.strcpy(friend1.name,"xiaojie");
D.strcpy(friend1->name,"xiaojie");
 你的回答: A  (×)       参考答案:C

26、下面定义了一个日期结构struct date,该结构类型占用的内存空间是多少字节

struct date{
   int year;
   int month;
   int day;
}date1;
A 6
B 9
C 12
D 15
 你的回答: A  (×)       参考答案:C

27、结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。请在______内填入正确内容。

 struct man{
	char name[20];
	int age;
  }worker[]={"li=ming",18,"wang-hua",29,"zhang-ping",20}; 
  main()
    {
     struct man *p,*q;
     int old=0;
     p=worker;
     for(q=p;p<;p++)
    {
   	if(old<p->age)
    {
  	   q=p;
       old=;
 	 }
     }
   printf("%s %d",);
}
A.①worker+4②p->age;③p->name,q->age
B.①worker+4②p->age;③q->name,q->age
C.①worker+3②p->age;③p->name,q->age
D.①worker+3②p->age;③q->name,q->age
 你的回答: B  (×)       参考答案:D

28、字符‘0’的ASCII代码值是十进制数48,数组的第0个元素在低位,以下程序的输出结果是______。

#include<stdio.h>
void main()
{
   union{
      int i[2];
      long k;
      char c[4];
   }r,*s=&r;
   s->i[0]=0x39;
   s->i[1]=0x38;
   printf("%x\n",s->c[0]);
} 
A.39
B.9
C.38
D.8
 你的回答: B  (×)       参考答案:A

29、以下程序的输出结果是______。

typedef union{
   long  i;
   int   k[5];
   char  c;
}DATE;
struct date{
   int  cat;
   DATE cow;
   double dog;
}too;
DATE max;
void main()
{
   printf(%d\n”,sizeof(struct date)+sizeof(max));
} 
A.25
B.30
C.18
D.8
 你的回答: A  (×)       参考答案:B

30、以下程序输出结果是( )。

#include <stdio.h> 
main( ) 
{	int a[20],*p[4],I,k=0;
	for(i=0;i<20;i++) a[i]=I; 
	for(i=0;i<4;i++) p[i]=&a[i*(i+2)];
	for(i=0;i<4;i++) k+=p[i][i];
	printf("%d\n",k); 
} 
A.数组元素引用不合法,输出结果不定
B.32
C.10
D.6
 你的回答: A  (×)       参考答案:B

共30道,专业课各章节练习错题积累得来,供参考学习。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值