2016年计算机二级考前冲刺卷及答案
(38)以下叙述中正确的是
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
(39)设有如下说明
typedef struct
{ int n; char c; double x; }STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是
A)STD tt[2]={ {1,'A',62},{2,'B',75} }; B)STD tt[2]={1, "A",62, 2, "B",75};
C)struct tt[2]={ {1,'A'} ,{2,'B'} }; D)struct tt[2]={{1, "A",62.5},{2, "B",75.0} };
(40)有以下程序
main()
{ union { unsigned int n;
unsigned char c;
} u1;
u1.c='A';
printf("%c\n",u1.n);
}
执行后输出结果是
A)产生语法错 B)随机值 C)A D)65
(41)有以下程序
main()
{ char str[]="xyz",*ps=str;
while(*ps) ps++;
for(ps--; ps-str>=0;ps--) puts(ps);
}
执行后输出结果是
A) yz B) z C) z D) x
xyz yz yz xy
xyz xyz
(42)有以下程序
main()
{ int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;
pa=a;
for(i=0; i<3; i++)
if(i<2) pa[1][i] = pa[1][i]-1;
else pa[1][i]=1;
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);
}
执行后输出结果是
A)7 B)6 C)8 D)无确定值
(43)有以下程序
void fun( int *a, int i, int j)
{ int t;
if(i
{ t=a[i]; a[i]=a[j]; a[j]=t;
fun(a,++i,--j);
}
}
main()
{ int a[]={1,2,3,4,5,6},i;
fun(a,0,5);
for(i=0; i<6; i++)
printf("%d ",a[i]);
}
执行后输出结果是
A)6 5 4 3 2 1 B)4 3 2 1 5 6 C)4 5 6 1 2 3 D)1 2 3 4 5 6
(44)有以下程序
main(int argc, char *argv[] )
{ int n,i=0;
while(argv[1][i]!='\0')
{ n=fun(); i++; }
printf("%d\n", n*argc);
}
int fun()
{ static int s=0;
s+=1;
return s;
}
假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行
exam 123<回车>
则运行结果为
A)6 B)8 C)3 D)4
(45)以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是
A) main() B) main()
{ int *p; { int *p;
fun(p); fun(&p);
┆ ┆
} }
int fun(int *p) int fun(int **p)
{ int s; p=&s; } { int s; *p=&s; }
C) #include D) #include
main() main()
{ int *p; { int *p;
fun(&p); fun(p);
┆ ┆
} }
int fun(int **p) int fun(int *p)
{ *p=(int *)malloc(2); } { p=(int *)malloc(sizeof(int)); }
(46)若要说明一个类型名STP,使得定义语句STP s;等价于 char *s;,以下选项中正确的是
A)typedef STP char *s; B)typedef *char STP;
C)typedef STP *char; D)typedef char* STP;
(47)设有如下定义
struct ss
{ char name[10];
int age;
char sex;
} std[3],*p=std;
下面各输入语句中错误的是
A)scanf("%d",&(*p).age); B)scanf("%s",&std.name);
C)scanf("%c",&std[0].sex); D)scanf("%c",&(p->sex) );
(48)设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是
A)10101001 B)10101000 C)11111101 D)01010101
(49)以下叙述中不正确的是
A)C语言中的文本文件以ASCII码形式存储数据
B)C语言中对二进制文件的访问速度比文本文件快
C)C语言中,随机读写方式不适用于文本文件
D)C语言中,顺序读写方式不适用于二进制文件
(50)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include
main()
{ FILE *fout; char ch;
fout=fopen('abc.txt','w' );
ch=fgetc(stdin);
while(ch!='#')
{ fputc(ch, fout);
ch=fgetc(stdin);
}
fclose(fout);
}
出错的原因是
A)函数fopen调用形式错误 B)输入文件没有关闭
C)函数fgetc调用形式错误 D)文件指针stdin没有定义