一、选择题答案
1. 以下定义语句中,错误的是
A) int a[]={1,2};
B) char *a[3];
C) char s[10]= "test";
D) int n=5,a[n];
你所选择的答案是:*,正确答案是:D ×
2. 以下程序段的输出结果是
int a=1234;
printf("%2d\n",a);
A) 12
B) 34
C) 1234
D) 提示出错、无结果
你所选择的答案是:*,正确答案是:C ×
3. 以下程序的输出结果是
main()
{
int a=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
A) 31
B) 13
C) 10
D) 20
你所选择的答案是:*,正确答案是:A ×
4. 以下程序的输出结果是
#include <stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%10)==0) break;
else i--;
}
i+=11; a+=i;
}
printf("%d\n",a);
}
A) 21
B) 32
C) 33
D) 11
你所选择的答案是:*,正确答案是:B ×
5. 以下程序段的输出结果是
char s[]="\\141\141abc\t";
printf ("%d\n",strlen(s));
A) 9
B) 12
C) 13
D) 14
你所选择的答案是:*,正确答案是:A ×
6. 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是
A) 字符A
B)字符a
C)字符e
D)非法的常量
你所选择的答案是:*,正确答案是:A ×
7. C语言中用于结构化程序设计的三种基本结构是( )。
A) 顺序结构、选择结构、循环结构
B) if、switch、break
C) for、while、do-while
D) if、for、continue
你所选择的答案是:*,正确答案是:A ×
8. 有以下程序
main( )
{
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是( )。
A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5
你所选择的答案是:*,正确答案是:B ×
9. 有以下程序
#include
main( )
{ FILE *fp; int i,k=0,n=0;
fp=fopen(“d1.dat”,”w”);
for(i=1;i<4;i++) fprintf(fp,”%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);
fclose(fp);
}
执行后输出结果是( )。
A) 1 2 B) 123 0 C) 1 23 D) 0 0
你所选择的答案是:*,正确答案是:B ×
10. 37.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( )。
A)称为函数的直接递归调用
B)称为函数的间接递归调用
C)称为函数的循环调用
D)C语言中不允许这样的递归调用
你所选择的答案是:*,正确答案是:B ×
11. 有以下程序
main()
{ char s[]="Yes\n/No",*ps=s;
printf("%s,",ps+4);
*(ps+4)=0;
printf("%s",s);
}
程序运行后的输出结果是 ( )。
A)/No,Yes
B)/No,/No
C
)n/NO,Yes
D) Yes,Yes
你所选择的答案是:*,正确答案是:A ×
12. 有以下程序
#define P 3
#define F(int x) { return (P*x*x);}
main()
{
printf("%d ",F(3+5));
}
程序运行后的输出结果是 ( )。
A)192
B)29
C)25
D)编译出错
你所选择的答案是:*,正确答案是:D ×
13. 有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
struct node
{
int data;
struct node *next;
} *p,*q,*r;
现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是 ( )。
A)p->next=q->next;
B)p->next=p->next->next;
C)p->next=r;
D)p=q->next;
你所选择的答案是:*,正确答案是:D ×
14. 以下选项中,值为1的表达式________。
A)1-'0' B)1-'\0' C)'1'-0 D)'\0'-'0'
你所选择的答案是:*,正确答案是:B ×
15. 有以下程序
#include "stdio.h"
main()
{ int s;
scanf("%d",&s);
while(s>0)
{ switch(s)
{ case 1:printf("%d",s+5);
case 2:printf("%d",s+4); break;
case 3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
运行时,若输入1 2 3 4 5 0<;回车>,则输出结果是
A)6566456
B)66656
C)66666
D)6666656
你所选择的答案是:*,正确答案是:A ×
16. 有以下程序
字符串长度和占用内存字节#include "stdio.h"
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf("%d\n",++(p.a));
}
程序运行后的输出结果是
A)10
B)11
C)20
D)21
你所选择的答案是:*,正确答案是:D ×
17. )以下程序段完全正确的是
A)int *p; scanf("%d",&p);
B)int *p; scanf("%d",p);
C)int k, *p=&k; scanf("%d",p);
D)int k, *p:; *p= &k; scanf("%d",p);
你所选择的答案是:*,正确答案是:C ×
18. 有以下程序(函数fun只对下标为偶数的元素进行操作)
#include<stdio.h>
void fun(int*a,int n)
{int i,j,k,t;
for(i=0;i<n-1;i+=2)
{k=i;
for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;
t=a[i];a[i]=a[k];a[k]=t;
}
}
main()
{int aa[10]={1,2,3,4,5,6,7},i;
fun(aa,7);
for(i=0;i<7;i++)
printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是
A)7,2,5,4,3,6,1
B)1,6,3,4,5,2,7
C)7,6,5,4,3,2,1
D)1,7,3,5,6;2,1
你所选择的答案是:*,正确答案是:A ×
19. 若有以下语句
typedef struct S
{int g; char h;}T;
以下叙述中正确的是
A)可用S定义结构体变量
B)可用T定义结构体变量
C)S是struct类型的变量
D)T是struct S类型的变量
你所选择的答案是:*,正确答案是:D ×
20. 以下关于C 语言数据类型使用的叙述中错误的是( )。
A)若要准确无误差的表示自然数,应使用整数类型
B)若要保存带有多位小数的数据,应使用双精度类型
C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类
型
D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型
你所选择的答案是:*,正确答案是:D ×
21. 以下选项中与if(a==1)a=b;else a++;语句功能不同的switch 语句是( )。
A)switch(a) B)switch(a==1)
{case 1;a=b;break; {case 0:a=b;break;
default:a++; case 1:a++;
} }
C)switch(a) D)switch(a==1)
{default:a++;break; {case 1:a=b;break;
case 1:a=b; case 0:a++;
} }
你所选择的答案是:*,正确答案是:B ×
22. 有以下程序,其中k 的初值为八进制数:
#include<stdio.h>
main()
{ int k=011;
printf("%d\n",k++);
}
程序运行后的输出结果是( )。
A)12 B)11
C)10 D)9
你所选择的答案是:*,正确答案是:D ×
23. 以下关于return 语句的叙述中正确的是( )。
A)一个自定义函数中必须有一条return 语句
B)一个自定义函数中可以根据不同情况设置多条return 语句
C)定义成void 类型的函数中可以有带返回值的return 语句
D)没有return 语句的自定义函数在执行结束时不能返回到调用处
你所选择的答案是:*,正确答案是:B ×
24. 下列选项中,能正确定义数组的语句是( )。
A)int num[0..2008]; B)int num[];
C)int N=2008; D)#define N 2008
int num[N]; int num[N];
你所选择的答案是:*,正确答案是:D ×
二、填空题
1. 以下程序的输出结果是( )。
int a=1234;
printf ("%2d\n",a);
你所选择的答案是:,正确答案是:1234 , ×
2. 在内存中,存储字符'x'要占用1个字节,存储字符串"X"要占用( )个字节。
你所选择的答案是:,正确答案是:2 , ×
3. 设有定义“struct {int a; float b; char c;} abc, *p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和( )。
你所选择的答案是:,正确常答案是:p_abc->a 或 (*p_abc).c, ×
4. mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
int mystrlen(char *str)
{ int i;
for(i=0;_____!= ′\0′;i++);
return(i);
}
你所选择的答案是:,正确常答案是:*(str+i) 或 str[i], ×
5. 以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
struct
node
{ int info;
______ link;
};
你所选择的答案是:,正确答案是:struct node * , ×
6. 以下程序段中,错误的是第( )行。
① #include <stdio.h>
② main()
③ { char str[14];str[]={" I love China"};
④ printf("%s",str);
⑤ }
你所选择的答案是:,正确答案是:3 , ×
7. 设x为int型变量,执行以下语句,x=10; x+=x-=x-x; x的值为__________。
你所选择的答案是:,正确答案是:20 , ×
8. 以下程序段的运行结果是___________。
int a=2,b=3;
printf(a>b?"***a=%d":"###b=%d",a);
你所选择的答案是:,正确答案是:###b=2 , ×
9. 若有以下程序
int f(int x,int y)
{ return(y-x)*x; }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出的结果是【 】。
你所选择的答案是:,正确答案是:9 , ×
10. 下列程序的运行结果是:【 】
#include
char *ss(char *s)
{ return s+strlen(s)/2;}
main( )
{ char *p,*str=”abcdefgh”;
p=ss(str); printf(“%s\n”,p);
}
你所选择的答案是:,正确答案是:6 , ×
11. 以下程序运行后的输出结果是 【 】 。
#include "stdio.h"
main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}
你所选择的答案是:,正确答案是:3 , ×
12. #include "stdio.h"
main()
{ char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c\n",c1,c2);
}
若程序运行时从键盘输入48<;回车>,则输出结果为 【 】
你所选择的答案是:,正确答案是:09 , ×
13. 以下程序运行后的输出结果是 【 】 。
#include "stdio.h"
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d %d\n",x,y);
}
你所选择的答案是:,正确答案是:20 0 , ×
14. 在C语言中,当表达式值为0时表示逻辑值"假",当表达式值为【 】时表示逻辑值"真"。
你所选择的答案是:,正确常答案是:非0 或 非零, ×
15. 以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设M,. N已定义)
int fun(int a[N][M))
{int i,j,row=0,col=0;
for(i=0;i<N;i++)
for(j=0;j<M,j++)
if(a[i][j]>a[row][col]){row=i;col=j;}
return(【 】 ):
}
你所选择的答案是:,正确答案是:a[row][col] , ×
16. 以下程序的功能是:借助指针变量出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。
#include<stdio.h>
main()
{int a[10],*p,*s;
for(p=a;p-a<10;p++)scanf("%d",p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;
printf("max=%d\n",【 】);
}
你所选择的答案是:,正确答案是:*s , ×
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论