首页 > 全部 > 二级C语言 > 国家二级(C语言)机试模拟试卷505

国家二级(C语言)机试模拟试卷505

本单篇文档共17725字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 模拟试卷 5970人下载
价格: 1.00 原价:¥9.00
收藏

国家二级(C语言)机试模拟试卷505

选择题

1.假定已建立以下数据链表结构,且指针p和q已指向如下图所示的结点:

(D)

A. (*)p.next=(*q).next;free(p)

B. b=q—>next;free(q)

C. p=q;free(q)

D. p—>next=q—>next;free(q)

解析:要删除结点q,应首先由q的上一个结点p的指针域指向q的指针域所指向的结点,即p—>next=q—>next;,然后才能释放结点q,即free(q)。

2.下列叙述中错误的是( )。(A)

A. 用户所定义的标识符允许使用关键字

B. 用户所定义的标识符应尽量做到“见名知意”

C. 用户所定义的标识符必须以字母或下划线开头

D. 用户定义的标识符中,大、小写字母代表不同标识

解析:在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,凡是要求标识符的地方都必须按此规则命名。在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。在选择标识符时,应注意做到“见名知义”,即选择具有一定含义的英文单词或汉语拼音作为标识符,以增加程序的可读性。

3.若变量都己正确说明,则以下程序段输出结果为( )。

#inc1ude

main()

{char a=’a’;

int b=2;

printf(a>b?\\(D)

A. ***a=3

B. ###b=3

C. ***a=3##b=5

D. 全部错误

解析:本题考查printf函数的格式和三目运算符“?:”的使用。printf函数中格式说明符之前插入的任何字符都原样输出。本题中“a>b”为真,所以返回 “***a=97”。

4.以下关于逻辑运算符两侧运算对象的叙述中正确的是( )。(A)

A. 可以是任意合法的表达式

B. 只能是整数0或非0整数

C. 可以是结构体类型的数据

D. 只能是整数0或1

解析:C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择A。

5.有以下程序:

#include

main()

{ int i,j,k,a=5,b=6;

i=(a==b)?++a:–b;

j=a++;k=b;printf(\\(B)

A. 7,6,5

B. 5,5,5

C. 7,5,5

D. 5,6,5

解析:条件表达式i=(a==b)?++a:–b;中先执行a==b,值为假,根据三元运算符语法规则,执行–b,此时b为5,赋给i,i=5;j=a++,将a=5先赋给j,再进行a++,j=5,a=6,k=b=5,故最后输出的是5,5,5。

6.以下数组定义中错误的是( )。

D

解析:D选项中x[2][3]定义的是一个两行三列的二维数组,而在给数组元素赋值时却赋成了三行,所以错误。

7.若有定义int a[5],*p=a;则正确引用数组元素的是( )。(D)

A. *&a[5]

B. *a+2

C. *(p+5)

D. *(a+2)

解析:本题考查通过指针引用数组元素。用指针引用数组有以下3种形式:①(p+n)与(a+n)表示数组元素a[n]的地址:②*(p+n)与*(a+n)表示数组元素a[n];③p[n]=*(p+n),都表示数组元素a[n]。

选项A、B没有这种引用形式;选项C,*(p+5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D,*(a+2)引用数组的第3个元素。

8.有以下程序:

#include<stdio.h>

main()

{

char c1,c2;

c1=’A’+’8’一’4’;

c2=’A’+’8’一’5’;

printf(\\(A)

A. E 68

B. D 69

C. E D

D. 输出无定值

解析:C语言中每个字符都对应一个ASCII码值,该值可以用来运算。本题中main函数将字符A经过加4和加3运算后分别赋值给c1、c2,然后将c1按字符格式输出,c2按整型格式输出。

9.有以下程序:

#include

main()

{ int a[]={2,3,5,4},i;

for(i=0;i<4;i++)

switch(i%2)

{ease 0:switch(a[i]%2)

{ ease 0:a[i]++;break;

case 1:a[i]一一;

}break;

ease 1:a[i]=0;

}

for(i:0;i<4;i++)printf(“%d”,a[i]);prinff(“\n”);

}

程序运行后的输出结果是( )。(D)

A. 0 3 0 4

B. 2 0 5 0

C. 3 3 4 4

D. 3 0 4 0

解析:第一次循环i为0,i%2为0,执行switch(a[0]%2)中的case 0语句后内容即a[0]++,a[0]的值变成3;第二次循环i的值为1,i%2为1,执行ease 1:a[i]=0;所以a[1]的值变成0;第三次循环i的值为2,i%2为0,执行switch(a[2]%2)中的case 1语句后的内容a[2]一一,a[2]的值变成4;第四次循环i的值为3,i%2为1,执行case 1:a[i]=0;所以a[3]的值变成0。

10.以下程序的输出结果是( )。

#inc1ude

main()

{ int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;

for(i=0;i<3;i++)

for(j=i;j<=i;j++)

s+=a[i][a[j][j]];

printf(\\(B)

A. 3

B. 4

C. l

D. 9

解析:当外层循环为i时,内层循环i只能取j—i,所以s+=a[0][a[j][j],其实就是s+=a[i][a[i][i]],当i=0时,s=s+a[0][a[0][0]]=s+a[0][0]—1,当i=1时,s=s+a[1][a[1][1]]=s+a[1][1]=1+1=2,当1=2时,s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。

11.在C语言中,变量的隐含存储类别是( )。(A)

A. auto

B. stati

本文档预览:3600字符,共17725字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级(C语言)机试模拟试卷505

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号