资源描述
二级C语言笔试试题汇编
一、选择题 ((1)~(40) 每题 1 分, (41)~(50) 每题 2 分, 共 60 分)
下列各题 A)、B)、C)、D)四个选项中, 只有一个选项是正确的。
01) 与十进制数200等值的十六进制数为
A)A8
B)A4
C)C8
D)C4
答案:C
02) DOS文件系统的组织结构属于
A)星形结构
B)网形结构
C)环形结构
D)树形结构
答案:D
03) 对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该存储器芯片的存储容量
为
A)1KB
B)2KB
C)4KB
D)8KB
答案:A
04) 在DOS环境下,代表键盘和显示器的设备文件名为
A)PRN
B)CON
C)NUL
D)LPT
答案:B
05) 计算机网络的主要特点是
A)运算速度快
B)运算精度高
C)资源共享
D)人机交互
答案:C
06) 磁盘处于写保护状态时其中的数据
A)不能读出,不能删改
B)可以读出,不能删改
C)不能读出,可以删改
D)可以读出,可以删改
答案:B
07) 从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为
A)EXIT
B)QUIT
C)RET
D)MSDOS
答案:A
08) 在Windows环境下,若资源管理器左窗口中的某文件夹左边标有“+”标记,则表示
A)该文件夹为空
B)该文件夹中含有子文件夹
C)该文件夹中只包含有可执行文件
D)该文件夹中包含系统文件
答案:B
09) 在Windows菜单中,暗淡的命令名项目表示该命令
A)暂时不能用
B)正在执行
C)包含下一层菜单
D)包含对话框
答案:A
10)
A)将当前应用程序转为后台运行
B)退出Windows后再关机
C)终止当前应用程序的运行
D)退出Windows后重新启动计算机
答案:C
11) 用C语言编写的代码程序
A)可立即执行
B)是一个源程序
C)经过编译即可执行
D)经过编译解释才能执行
答案:B
12) 结构化程序由三种基本结构组成,三种基本结构组成的算法
A)可以完成任何复杂的任务
B)只能完成部分复杂的任务
C)只能完成符合结构化的任务
D)只能完成一些简单的任务
答案:A
13) 以下定义语句中正确的是
A)char a='A' b='B';
B)float a=b=10.0;
C)int a=10, *b=&a;
D)float *a,b=&a;
答案:C
14) 下列选项中,不能用作标识符的是
A)_1234_
B)_1_2
C)int_2_
D)2_int_
答案:D
15) 有以下定义语句
double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是
A)a=a+b=b++
B)w%((int)a+b)
C)(c+w)%(int)a
D)w=a==b;
答案:C
16) 有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf{"%d\n",x);
}
程序运行后的输出结果是
A)3
B)5
C)-1
D)-2
答案:D
17) 有以下程序
main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是
A)b,b
B)b,c
C)a,b
D)a,c
答案:A
18) 有以下程序
main()
{ int m=0256,n=256;
printf("%o%o\n",m,n);
}
程序运行后的输出结果是
A)0256 0400
B)0256 256
C)256 400
D)400 400
答案:C
19) 有以下程序
main()
{ int a=666,b=888;
printf("%d\n",a,b);
}
程序运行后的输出结果是
A)错误信息
B)666
C)888
D)666,888
答案:B
20) 有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
}
程序运行后的输出结果是
A)022111
B)021021
C)000122
D)012
答案:C
21) 若x和y代表整型数,以下表达式中不能正确表示数学关系 |x-y|<10 的是
A)abs(x-y)<10
B)x-y>-10&&x-y<10
C)!(x-y)<-10||!(y-x)>lO
D)(x-y)*(x-y)<100
答案:C
22) 有以下程序
main()
{ int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d++ + 1);
else
printf("%d",++d + 1);
printf("%d\n",d);
}
程序运行后的输出结果是
A)2
B)3
C)43
D)44
答案:A
23) 下列条件语句中,功能与其他语句不同的是
A)if(a) printf("%d\n",x); else printf("%d\n",y);
B)if(a==0) printf("%d\n",y); else printf("%d\n",x);
C)if(a!=0) printf("%d\n",x); else printf("%d\n",y);
D)if(a==0) printf("%d\n",x); else printf("%d\n",y);
答案:D
24) 有以下程序
main()
{ int i=0,s=0;
for(;;)
{
if(i==3||i==5) continue;
if(i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
程序运行后的输出结果是
A)1O
B)13
C)21
D)程序进入死循环
答案:D
25) 若变量己正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
A)for(i=1,p=1;i<=5;i++) p*=i;
B)for(i=1;i<=5;i++){p=1;p*=i;}
C)i=1;p=1;while(i<=5){p*=i;i++;}
D)i=1;p=1;do{p*=i;i++;}while(i<=5);
答案:B
26) 有以下程序
main()
{ char a,b,c,d;
scanf{"%c,%c,%d,%d",&a,&b,&c,&d);
printf{"%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66 <回车> 。则输出结果是
A)6,5,A,B
B)6,5,65,66
C)6,5,6,5
D)6,5,6,6
答案:A
27) 以下能正确定义二维数组的是
A)int a[][3];
B)int a[][3]={2*3};
C)int a[][3]={};
D)int a[2][3]={{1},{2},{3,4}};
答案:B
28) 有以下程序
int f(int a)
{ return a%2;}
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++)d+=s[i];
printf("%d\n",d);
}
程序运行后的输出结果是
A)9
B)11
C)19
D)21
答案:A
29) 若有以下说明和语句
int c[4][5],(*p)[5];
p=c;
能够正确引用c数组元素的是
A)p+1
B)*(p+3)
C)*(p+1)+3
D)*(p[0]+2)
答案:D
30) 有以下程序
main()
{ int a=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=p;p=q;q=r;
printf{"%d,%d,%d,%d\n",*p,*q,a,b);
}
程序运行后的输出结果是
A)8,7,8,7
B)7,8,7,8
C)8,7,7,8
D)7,8,8,7
答案:C
31) s1和s2己正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语
句S;则以下选项中正确的是
A)if(s1>s2) S;
B)if(strcmp(s1,s2)) S;
C)if(strcmp(s2,s1)>0) S;
D)if(strcmp(s1,s2)>0) S;
答案:D
32) 设有定义语句
int x[6]={2,4,6,8,5,7}, *p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是
A)for(i=0;i<6;i++) printf("%2d",*(p++));
B)for(i=0;i<6;i++) printf("%2d",*(p+i));
C)for(i=0;i<6;i++) printf("%2d",*p++);
D)for(i=0;i<6;i++) printf("%2d",(*p)++);
答案:D
33) 有以下程序
#include <stdio.h>
main()
{ int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d %d\n",*p,*q);
}
程序运行后的输出结果是
A)运行后报错
B)6 6
C)6 11
D)5 10
答案:A
34) 设有以下定义和语句
int a[3][2]={1,2,3,4,5,6},*p[3];
p[0]=a[1];
则 *(p[0]+1) 所代表的数组元素是
A)a[0][1]
B)a[1][0]
C)a[1][1]
D)a[l][2]
答案:C
35) 有以下程序
main()
{ char str[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是
A)China
B)Beijing
C)ng
D)ing
答案:B
36) 有以下程序
main()
{ char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
}
程序运行后的输出结果是
A)ABCD
BCD
CD
D
B)A
B
C
D
C)B
C
D
D)BCD
CD
D
答案:D
37) 在函数调用过程中,如果函数如funA调用了函数funB,函数funB又调用了函数如funA,则
A)称为函数的直接递归调用
B)称为函数的间接递归调用
C)称为函数的循环调用
D)C语言中不允许这样的递归调用
答案:B
38) 己有定义:int i,a[10],*p;,则合法的赋值语句是
A)p=100;
B)p=a[5];
C)p=a[2]+2;
D)p=a+2;
答案:D
39) 以下叙述中正确的是
A)局部交量说明为static存储类,其生存期将得到延长
B)全局变量说明为static存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的
D)形参可以使用的存储类说明符与局部变量完全相同
答案:A
40) 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是
A)c1^c2
B)c1&c2
C)~c2
D)c1|c2
答案:A
41) 程序中对fun函数有如下说明
void *fun();
此说明的含义是
A)fun函数无返回值
B)fun函数的返回值可以是任意的数据类型
C)fun函数的返回值是无值型的指针类型
D)指针fun指向一个函数,该函数无返回值
答案:C
42) 有以下程序
main()
{ char s[]="Yes\n/No",*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
}
程序运行后的输出结果是(选项D中的第一行是空行)
A)n/No
Yes
/No
B)/No
Yes
C)n/No
Yes
/No
D)
/No
Yes
答案:B
43) 有以下程序
main()
{ unsigned int a;
int b=-1;
a=b;
printf("%u",a);
}
程序运行后的输出结果是
A)-1
B)65535
C)32767
D)-32768
答案:B
44) 有以下程序
void fun(int *a,int i,int j)
{ int t;
if(i<j)
{ t=a[i];a[i]=a[j];a[j]=t;
i++;j--;
fun(a,i,j);
}
}
main()
{ int x[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<4;i++) printf("%2d",x[i]);
printf("\n");
}
程序运行后的输出结果是
A)1 2 6 8
B)8 6 2 1
C)8 1 6 2
D)8 6 1 2
答案:C
45) 有以下说明和定义语句
struct student
{ int age;char num[8];};
struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};
struct student *p=stu;
以下选项中引用结构体变量成员的表达式错误的是
A)(p++)->num
B)p->num
C)(*p).num
D)stu[3].age
答案:D
46) 有以下程序
main()
{ int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<8;i++)printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是
A)75310246
B)01234567
C)76310462
D)13570246
答案:A
47) 有如下程序
#include <stdio.h>
main()
{ FILE *fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为
A)goodabc
B)abcd
C)abc
D)abcgood
答案:C
48) (48)~(50)共用一题。以下程序的功能是:建立一个带有头结点的单向链表,并将存储在
数组中的字符依次转储到链表的各个结点中,请选择正确的选项作为下划线号码与题号相同处
的正确答案。
#include <stdlib.h>
struct node
{char data;stuct node *next;};
__(48)___ CreatList(char *s)
{ struct node *h,*p,*q;
h=(struct node *)malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{ p=(struct node *)malloc(sizeof(struct node));
p->data=___(49)___;
q->next=p;
q=___(50)___;
s++;
}
p->next='\0';
return h;
}
main()
{ char str[]="link list";
struct node *head;
head=CreatList(str);
...
}
A)char *
B)struct node
C)struct node *
D)char
答案:C
49) (48)~(50)共用一题。以下程序的功能是:建立一个带有头结点的单向链表,并将存储在
数组中的字符依次转储到链表的各个结点中,请选择正确的选项作为下划线号码与题号相同处
的正确答案。
#include <stdlib.h>
struct node
{char data;stuct node *next;};
__(48)___ CreatList(char *s)
{ struct node *h,*p,*q;
h=(struct node *)malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{ p=(struct node *)malloc(sizeof(struct node));
p->data=___(49)___;
q->next=p;
q=___(50)___;
s++;
}
p->next='\0';
return h;
}
main()
{ char str[]="link list";
Struct node *head;
head=CreatList(st);
...
}
A)*s
B)s
C)*s++
D)(*s)++
答案:A
50) (48)~(50)共用一题。以下程序的功能是:建立一个带有头结点的单向链表,并将存储在
数组中的字符依次转储到链表的各个结点中,请选择正确的选项作为下划线号码与题号相同处
的正确答案。
#include <stdlib.h>
struct node
{char data;stuct node *next;};
__(48)___ CreatList(char *s)
{ struct node *h,*p,*q;
h=(struct node *)malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{ p=(struct node *)malloc(sizeof(struct node));
p->data=___(49)___;
q->next=p;
q=___(50)___;
s++;
}
p->next='\0';
return h;
}
main()
{ char str[]="link list";
Struct node *head;
head=CreatList(st);
...
}
A)p->next
B)p
C)s
D)s->next
答案:B
二、填空题(每空 2 分 , 共 40 分)
请将每一个空的正确答案写在答题处【1】至【20】。
1) 在64位高档微机中,CPU能同时处理【1】个字节的二进制数据。
本小题第1空答案:8 或 八
2) E-mail地址由域名和用户名两部分组成,它们之间用@分隔,其中在@后面的部分是【2】。
本小题第1空答案:域名 或 电子邮件服务器名
3) Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要用鼠标拖
动【3】。
本小题第1空答案:标题栏
4) 计算机软件分为系统软件和应用软件,UNIX系统属于【4】。
本小题第1空答案:系统软件
5) 在Windows环境下,为了将屏幕内容存入剪贴板,应按【5】键。
本小题第1空答案:PrintScreen 或 PrtScrn 或 PrtSc
6) 以下程序段的输出结果是【6】。
int i=9;
printf("%o\n",i);
本小题第1空答案:11
7) 以下程序运行后的输出结果是【7】。
main()
{ int a,b,c;
a=25;
b=025;
c=0x25;
printf("%d %d %d\n",a,b,c);
}
本小题第1空答案:25 21 37
8) 以下程序运行后的输出结果是【8】。
main()
{ int p[7]={11,13,14,15,16,17,18};
int i=0,j=0;
while(i<7&&p[i]%2==1) j+=p[i++];
printf("%d\n",j);
}
本小题第1空答案:24
9) 以下程序运行后的输出结果是【 9 】。
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1: switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2: a++;b++;break;
}
printf("%d %d\n",a,b);
}
本小题第1空答案:2 1
10) 以下程序运行后的输出结果是【10】。
main()
{ int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
int i=0,j=0,s=0;
while(i++<4)
{
if(i==2||i==4) continue;
j=0;
do{ s+=a[i][j]; j++; } while(j<4);
}
printf("%d\n",s);
}
本小题第1空答案:92
11) 以下程序运行后的输出结果是【11】。
main()
{ char a[]="Language",b[]="Programe";
char *p1,*p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k));
}
本小题第1空答案:gae
12) 以下程序运行后的输出结果是【12】。
main()
{ char a[]="123456789",*p;int i=0;
p=a;
while(*p)
{ if(i%2==0) *p='*';
p++;i++;
}
puts(a);
}
本小题第1空答案:*2*4*6*8*
13) 以下程序中,for 循环体执行的次数是【13】。
#define N 2
#deflne M N+l
#define K M+1*M/2
main()
{ int i;
for(i=1;i<K;i++)
{ ... }
...
}
本小题第1空答案:4
14)
本小题第1空答案:x
本小题第2空答案:x*x+1 或 1+x*x
15) 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
main()
{ int i,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++) scanf("%d",【16】);
for(i=0;i<20;i++)
{ if(a[i]>O)
{ count++;
sum+=【17】;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
本小题第1空答案:&a[i] 或 a+i
本小题第2空答案:a[i] 或 *(a+i)
16) 以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计
算它们的和值。和值通过形参传回主函数输出。请填空。
#define M 2
#define N 4
void SumColumMin(int a[M][N], int *sum)
{ int i,j,k,s=0;
for(i=0;i<N;i++)
{ k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i]) k=j;
s+=【18】;
}
【19】=s;
}
main()
{ int x[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(【20】);
printf("%d\n",s);
}
本小题第1空答案:a[k][i]
本小题第2空答案:*sum
本小题第3空答案:x,&s
一、选择题 ((1)~(10)每小题 2 分 ,(11)~(50)每小题 1 分 , 共 60 分)
下列各题 A)、B)、C)、D)四个选项中, 只有一个选项是正确的。
01) 数据的存储结构是指
A)存储在外存中的数据
B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式
D)数据的逻辑结构在计算机中的表示
答案:D
02) 下列关于栈的描述中错误的是
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中, 不需要改变栈底指针
答案:B
03) 对于长度为n的线性表, 在最坏情况下, 下列各排序法所对应的比较次数中正确的是
A)冒泡排序为 n/2
B)冒泡排序为 n
C)快速排序为 n
D)快速排序为 n(n-1)/2
答案:D
04) 对长度为n的线性表进行顺序查找, 在最坏情况下所需要的比较次数为
A)
B)n/2
C)n
D)n+1
答案:C
05) 下列对于线性链表的描述中正确的是
A)存储空间不一定是连续, 且各元素的存储顺序是任意的
B)存储空间不一定是连续, 且前件元素一定存储在后件元素的前面
C)存储空间必须连续, 且前件元素一定存储在后件元素的前面
D)存储空间必须连续, 且各元素的存储顺序是任意的
答案:A
06) 下列对于软件测试的描述中正确的是
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则
答案:C
07) 为了使模块尽可能独立, 要求
A)模块的内聚程度要尽量高, 且各模块间的耦合程度要尽量强
B)模块的内聚程度要尽量高, 且各模块间的耦合程度要尽量弱
C)模块的内聚程度要尽量低, 且各模块间的耦合程度要尽量弱
D)模块的内聚程度要尽量低, 且各模块间的耦合程度要尽量强
答案:B
08) 下列描述中正确的是
A)程序就是软件
B)软件开发不受计算机系统的限制
C)软件既是逻辑实体, 又是物理实体
D)软件是程序、数据与相关文档的集合
答案:D
09) 数据独立性是数据库技术的重要特点之一。所谓数据独立性是指
A)数据与程序独立存放
B)不同的数据被存放在不同的文件中
C)不同的数据只能被对应的应用程序所使用
D)以上三种说法都不对
答案:D
10) 用树形结构表示实体之间联系的模型是
A)关系模型
B)网状模型
C)层次模型
D)以上三个都是
答案:C
11) 算法具有五个特性, 以下选项中不属于算法特性的是
A)有穷性
B)简洁性
C)可行性
D)确定性
答案:B
12) 以下选项中可作为C语言合法常量的是
A)-80.
B)-080
C)-8e1.0
D)-80.0e
答案:A
13) 以下叙述中正确的是
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要有输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
答案:C
14) 以下不能定义为用户标识符是
A)Main
B)_0
C)_int
D)sizeof
答案:D
15) 以下选项中, 不能作为合法常量的是
A)1.234e04
B)1.234e0.4
C)1.234e+4
D)1.234e0
答案:B
16) 数字字符0的ASCII值为48, 若有以下程序
main()
{ char a='1',b='2';
printf("%c,",b++); printf("%d\n",b-a);
}
程序运行后的输出结果是
A)3,2
B)50,2
C)2,2
D)2,50
答案:C
17) 有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n); printf{"%d%d\n",n++,++m);
}
程序运行后的输出结果是
A)12353514
B)12353513
C)12343514
D)12343513
答案:A
18) 有定义语句: int b;char c[10];, 则正确的输入语句是
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
答案:B
19) 有以下程序
main()
{ int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据, 使变量m中的值为123, n中的值为456, p中的值为789, 则正确的输入
是
A)m=123n=456p=789
B)m=123 n=456 p=789
C)m=123,n=456,p=789
D)123 456 789
答案:A
20) 有以下程序
main()
{ int a,b,d=25;
a=d / 10 % 9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A)6,1
B)2,1
C)6,0
D)2,0
答案:B
21) 有以下程序
main()
{ int i=1,j=2,k=3;
if(i++==1 && (++j==3 || k++==3)) printf(("%d %d %d\n",i,j,k);
}
程序运行后的输出结果是
A)1 2 3
B)2 3 4
C)2 2 3
D)2 3 3
答案:D
22) 若整型变量a、b、c、d中的值依次为 :1、4、3、2。则条件表达式 a<b?a:c<d?c:d 的值是
A)1
B)2
C)3
D)4
答案:A
23) 有以下程序
main()
{ int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i] % 2) j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是
A)42
B)45
C)56
D)60
答案:B
24) 有以下程序
main()
{ char a[7]="a0\0a0\0";int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是
A)2 2
B)7 6
C)7 2
D)6 2
答案:C
25) 以下能正确定义一维数组的选项是
A)int a[5]={0,1,2,3,4,5};
B)char a[]={0,1,2,3,4,5};
C)char a={'A','B','C'};
D)int a[5]="0123";
答案:B
26) 有以下程序
int f1(int x,int y){ return x>y?x:y; }
int f2(int x,int y){ return x>y?y:x; }
main()
{ int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f
printf("%d,%d,%d\n",e,f,g);
}
程序运行后的输出结果是
A)4,3,7
B)3,4,7
C)5,2,7
D)2,5,7
答案:A
27) 已有定义: char a[]="xyz",b[]={'x','y','z'};, 以下叙述中正确的是
A)数组 a 和 b 的长度相同
B)a 数组长度小于 b 数组长度
C)a 数组长度大于 b 数组长度
D)上述说法都不对
答案:C
28) 有以下程序
void f(int *x, int *y)
{ int t;
t=*x;*x=*y;*y=t;
}
main()
{ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a; q=&a[7];
while (p<q)
{ f(p,q); p++; q--; }
for(i=0;i<8;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是
A)8,2,3,4,5,6,7,1,
B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8,
D)8,7,6,5,4,3,2,1,
答案:D
29) 有以下程序
main()
{ int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++) p[i]=i;
for(i=0;i<3;i++) printf("%d ",a[1][i]);
}
程序运行后的输出结果是
A)0 1 2
B)1 2 3
C)2 3 4
D)3 4 5
答案:D
30) 以下叙述中错误的是
A)对于double类型数组, 不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址, 其值不可改变
C)当程序执行中, 数组元素的下标超出所定义的下标范围时, 系统将给出“下标越界”的出
错信息
D)可以通过赋初值的方式确定数组元素的个数
答案:C
31) 有以下程序
#define N 20
fun(int a[], int n, int m)
{ int i,j;
for(i=m;i>=n;i--) a[i+1]=a[i];
}
main()
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++) printf("%d",a[i]);
}
程序运行后的输出结果是
A)10234
B)12344
C)12334
D)12234
答案:C
32) 有以下程序
main()
{ int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2
展开阅读全文