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道,专业课各章节练习错题积累得来,供参考学习。