欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言分类模拟题508及答案解析.doc

    • 资源ID:1325537       资源大小:99.50KB        全文页数:18页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言分类模拟题508及答案解析.doc

    1、二级 C语言分类模拟题 508及答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:35,分数:52.00)1.下列排序方法中,最坏情况下比较次数最少的是_。(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序2.以下选项中,能用作数据常量的是_。(分数:2.50)A.115LB.0118C.1.5e1.5D.o1153.有以下程序: #includestdio.h main() int a=1,b=2; for(;a8;a+)b+=a;a+=2; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.9,18B.8

    2、,11C.7,11D.10,144.输出语句:printf(“%d/n“,11+011);的输出结果是_。(分数:1.00)A.20B.22C.022D.0215.设有如下定义: struct int n; char c; a2,*p=a; 则以下错误引用结构体成员 n的是_。(分数:1.00)A.(* a)-nB.a0.nC.p-nD.(* p).n6.以下程序中函数 sort()的功能是对数组 a中的数据进行由大到小的排序。 #includestdio.h void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+)

    3、 if(aiaj) t=ai;ai=aj;aj=t; main() int a10=1,2,3,4,5,6,7,8,9,10),i; sort( for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:2.00)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,8,7,6,5,4,3,2,9,10,D.1,2,10,9,8,7,6,5,4,3,7.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误8.有以下程序: #include

    4、stdio.h main() char ch=“uvwxyz“,*pc; pc=ch; printf(“%c/n“,*(pc+5); 程序运行后的输出结果是_。(分数:1.00)AzB.0C.元素 ch5的地址D.字符 y的地址9.对于基类型相同的两个指针变量之间,不能进行的运算是_。(分数:1.00)A.B.=C.+D.-10.有以下程序: #includestdio.h double f(double x); main() double a=0; int i; for(i=0;i30;i+=10)a+=f(double)i); printf(“%3.0f/n“,a); double f(d

    5、ouble x) return x*x+1; 程序运行后的输出结果是_。(分数:1.00)A.500B.401C.503D.140411.C语言中,下列不合法的字符常量是_。(分数:1.00)A.“/xff“B.“/65“C.“ for(i=0; in; i+) sum+=xi; return sum; main() int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s); 程序执行后的输出结果是( )。(分数:1.00)A.45B.50C.60D.5513.有两个关系 R、S 如下: R

    6、 A B C a 3 2 b 0 1 c 2 1 S A B a 3 b 0 c 2 由关系 R通过运算得到关系 S,则所使用的运算为_。(分数:2.00)A.选择B.投影C.插入D.连接14.以下叙述中正确的是_。(分数:2.00)A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用 main作为主函数名,程序将从此开始执行,在此结束D.main可作为用户标识符,用以命名任意一个函数作为主函数15.若变量已正确定义为 int型,要给 a、b、c 输入数据,正确的输入语句是_。(分数:1.00)A.read(a,

    7、b, c);B.scanf(“%d%d%d“, a, b, c);C.scanf(“%D%D%D“, D.scanf(“%d%d%d“, 16.有以下程序: #includestdio.h void f(int x,int n) if(n1) printf(“%d,“,x0); f( printf(“%d,“,x0); else printf(“%d,“,x0); main() int z3=4,5,6; f(z,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,6,5,4,B.4,5,6,5,4,C.4,5,6,4,5,6,D.6,5,4,5,6

    8、,17.下面程序的输出结果为_。 #includestring.h main() charP17=“abc“=“ABC“.STR50=“xyz“; strcpy(str,strcat(p1,p2); printf(%s,str); (分数:2.00)A.xyzabcABCB.abcABCC.xyzabcD.xyzABC18.有以下程序: #includestdio.h main() int a=1,b=2,c=3,x; x=(ab)c; printf(“%d/n“,x); 程序运行后的输出结果是_。(分数:1.00)A.3B.1C.2D.019.下列选项中,能正确定义数组的语句是_。(分数:1

    9、.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;20.下列合法的声明语句是_。(分数:1.00)A.int _abc=50;B.double int=3+5e2.5;C.long do=1L;D.float 3_asd=3e-3;21.若有以下程序: #includestdio.h void fun(float*a, float*b) float w; *a=*a+*a; w=*a; *a=*b; *b=w; main() float x=20, y=3.0, *px= fun(px, py

    10、); printf(“%2.0f, %2.0f/n“, x, y); 程序的输出结果是_。(分数:2.50)A.4,3B.2,3C.3,4D.3,222.以下程序调用 fun函数求数组中最大值所在元素的下标: #includestdio.h void fun(int*s,int n,int*k) int i; for(i=0,*k=i;in;i+) if(sis*k)_; main() int a5=1,6,2,8,0,k; fun(a,5,k); printf(“%d%d/n“,k,ak); 在横线处应填入的内容是_。(分数:1.00)A.*k=iB.k=iC.*k=i-sD.k=i-s23

    11、.以下叙述中正确的是(分数:1.00)A.C程序中注释部分可以出现在程序中任意合适的地方B.花括号“”和“”只能作为函数体的定界符C.构成 C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是 C语句之间的分隔符,不是语句的一部分24.有三个关系 R、S 和 T如下: R A B C a 1 2 b 2 1 c 3 1 S A D c 4 T A B C D c 3 1 4 则由关系 R和 S得到关系 T的操作是_。(分数:1.00)A.自然连接B交C.投影D并25.若 i、j 已定义成 int型,则下列程序段中内循环体的总执行次数是_。 for(i=6; i0; i-) for(j=

    12、0; j4; j+)(分数:2.50)A.20B.24C.25D.3026.设一棵树的度为 3,共有 27个结点,其中度为 3,2,0 的结点数分别为 4,1,10。该树中度为 1的结点数为_。(分数:1.00)A.12B.13C.11D.不可能有这样的树27.设有如下定义: int arr=6, 7, 8, 9, 10; int*ptr; ptr=arr; *(ptr2)=2; printf(“%d, %d/n“, *ptr, *(ptr2); 则下列程序段的输出结果为_。(分数:2.50)A.8,10B.6,8C.7,9D.6,228.有以下程序: #includestdio.h int

    13、m=13; int fun2(int x, int y) int m=3; return(x*y-m); main() int a=7, b=5; printf(“%d/n“, fun2(a, b)/m); 程序运行后的输出结果是(分数:1.00)A.1B.2C.7D.1029.有以下程序 #includestdio.h main() int i, t3=9, 8, 7, 6, 5, 4, 3, 2, 1; for(i=0; i3; i+) printf(“%d“, t2-ii); 程序执行后的输出结果是_。(分数:2.00)A.3 5 7B.7 5 3C.3 6 9D.7 5 130.以下叙

    14、述中错误的是_。(分数:1.00)A.只要类型相同,结构体变量之间可以整体赋值B.函数的返回值类型不能是结构体类型,只能是简单类型C.可以通过指针变量来访问结构体变量的任何成员D.函数可以返回指向结构体变量的指针31.若有下列定义(设 int类型变量占 2个字节): int i=8, j=9; 则下列语句: printf(“i=%d, j=%d/n“, i, j); 输出的结果是_。(分数:2.50)A.i=8, j-9B.i=%d, j=%dC.i=%8, j=%9D.8, 932.下列定义变量的语句中错误的是_。(分数:2.50)A.int_int;B.double int_;C.char

    15、 For;D.float US$;33.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_B.8_8C.voidD.unsigned34.设有输入语句 scanf(“a=%d,b=%d,c=%d“, int i=0;,以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.00)A.gets(s);B.while(si+=getchar()!=“/n“); si=“/0“;C.scanf(“%s“, s);D.do scanf(“%c“, while(si+!=“/n“); si=“/0“;二级 C语言分类模拟题 508答案解析(总分:52.0

    16、0,做题时间:90 分钟)一、选择题(总题数:35,分数:52.00)1.下列排序方法中,最坏情况下比较次数最少的是_。(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序 解析:解析 冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较 n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是 nlog 2 n,因此本题答案为 D。2.以下选项中,能用作数据常量的是_。(分数:2.50)A.115L B.0118C.1.5e1.5D.o115解析:解析 A 选项中 115L表示 115是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进制中不能含有数字

    17、8,因此 B选项错误。C 选项中 e后面应该是整数,不能是小数(1.5),因此 C选项错误。D 选项中八进制常量应该是数字“0”开始,而不是字母“o”开始。故本题答案为 A。3.有以下程序: #includestdio.h main() int a=1,b=2; for(;a8;a+)b+=a;a+=2; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.9,18B.8,11C.7,11D.10,14 解析:解析 第一次循环 a的值为 1,满足条件,执行 b+=a与 a+=2,则 b的值变为 3,a 的值变为 3。执行 a+,a 的值为 4,满足条件

    18、进入第二次循环,执行完循环体后 b的值为 7,a 的值为 6。执行 a+,a的值为 7,满足条件进入第三次循环,执行完循环体后 b的值为 14,a 的值为 9。执行+,a 的值变为10,不满足条件,循环结束。所以选择 D选项。4.输出语句:printf(“%d/n“,11+011);的输出结果是_。(分数:1.00)A.20 B.22C.022D.021解析:解析 printf(“%d/n“,11+011),11 为十进制,011 为八进制形式,打印格式%d 表示十进制格式输出,因此,先将八进制数转化为十进制,011(8)=811+180=9,相当于 printf(“%d/n“,11+9),故

    19、答案为 20,A 选项正确。5.设有如下定义: struct int n; char c; a2,*p=a; 则以下错误引用结构体成员 n的是_。(分数:1.00)A.(* a)-n B.a0.nC.p-nD.(* p).n解析:解析 若已定义了一个结构体变量和一个同一结构体类型的指针变量,并使该指针指向同类型的变量,则可用以下 3种形式来引用结构体变量中的成员,其中结构体变量名也可以是已定义的结构体数组的数组元素:结构体变量名成员名;指针变量名-成员名;(*指针变量名)成员名。题目中 a为数组名是地址常量,不是指针变量,A 选项引用错误。a0为变量名,B 选项引用正确。p 为指针,且正确的指

    20、向结构体变量,C 选项引用正确。D 选项符合第三种引用方式,引用正确。6.以下程序中函数 sort()的功能是对数组 a中的数据进行由大到小的排序。 #includestdio.h void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj) t=ai;ai=aj;aj=t; main() int a10=1,2,3,4,5,6,7,8,9,10),i; sort( for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:2.00)A.1,2,3,4,5,6

    21、,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,8,7,6,5,4,3,2,9,10, D.1,2,10,9,8,7,6,5,4,3,解析:7.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误 解析:解析 程序调试的主要任务是改正程序中的错误,而软件测试是发现错误。8.有以下程序: #includestdio.h main() char ch=“uvwxyz“,*pc; pc=ch; printf(“%c/n“,*(pc+5); 程序运行后的输出结果是_。(分数:1.00)Az B.0C.元素 c

    22、h5的地址D.字符 y的地址解析:解析 语句 pe=ch;使得指针变量指向字符数组 ch的首地址,即指向字符“u“。则 pe+5指向的是字符向后移动 5位,指向字符“z“。所以输出的*pe+5 的值即为“z“。因此 A选项正确。9.对于基类型相同的两个指针变量之间,不能进行的运算是_。(分数:1.00)A.B.=C.+ D.-解析:10.有以下程序: #includestdio.h double f(double x); main() double a=0; int i; for(i=0;i30;i+=10)a+=f(double)i); printf(“%3.0f/n“,a); double

    23、 f(double x) return x*x+1; 程序运行后的输出结果是_。(分数:1.00)A.500B.401C.503 D.1404解析:解析 本题重点考察函数的定义和调用,第一次循环,a=0,i=0,返回值 a=0*0+1+0=1;第二次循环,a=1,i=10,返回值 a=10*10+1+1=102;第三次循环,a=102,i=20,返回值 a=20*20+1+102=503;第四次循环,a=503,i=30,不符合 i30,跳出循环,最后结果输出 a=503。11.C语言中,下列不合法的字符常量是_。(分数:1.00)A.“/xff“B.“/65“C.“ for(i=0; in;

    24、 i+) sum+=xi; return sum; main() int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s); 程序执行后的输出结果是( )。(分数:1.00)A.45B.50C.60 D.55解析:解析 函数 fun的功能是求数组的 n个元素之和。fun(a, 5)=15。由于 sum是静态局部变量,所以保持 15不变,fun(b, 4)=45,所以 s=fun(a, 5)+fun(b, 4)=60。13.有两个关系 R、S 如下: R A B C a 3 2 b 0 1 c

    25、 2 1 S A B a 3 b 0 c 2 由关系 R通过运算得到关系 S,则所使用的运算为_。(分数:2.00)A.选择B.投影 C.插入D.连接解析:解析 投影运算是指对于关系内的域指定可引入新的运算。本题中 S是在原有关系 R的内部进行的,是由 R中原有的那些域的列所组成的关系。所以选择 B。14.以下叙述中正确的是_。(分数:2.00)A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用 main作为主函数名,程序将从此开始执行,在此结束 D.main可作为用户标识符,用以命名任意一个函数作为主函数解析:

    26、解析 main 是主函数的函数名,表示这是一个主函数。每一个 C源程序都必须有且只能有一个主函数。程序要从 main函数开始执行,最后在 main函数中结束。本题选 C。15.若变量已正确定义为 int型,要给 a、b、c 输入数据,正确的输入语句是_。(分数:1.00)A.read(a, b, c);B.scanf(“%d%d%d“, a, b, c);C.scanf(“%D%D%D“, D.scanf(“%d%d%d“, 解析:解析 scanf 是键盘输入语句,%d 是打印十进制文件, f( printf(“%d,“,x0); else printf(“%d,“,x0); main() i

    27、nt z3=4,5,6; f(z,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,6,5,4,B.4,5,6,5,4, C.4,5,6,4,5,6,D.6,5,4,5,6,解析:解析 本题考查了函数的递归调用,在 main函数中调用 f(z,3)后,系统进入 f()函数,随后进入if语句,输出 x0;再进入 f()函数时,存在 strcpy(str,strcat(p1,p2); printf(%s,str); (分数:2.00)A.xyzabcABCB.abcABC C.xyzabcD.xyzABC解析:解析 strcpy(strl,s1):作用

    28、是将字符串 s1拷贝到字符数组 strl中去。strcat(字符数组 1,字符数组 2):把字符串 2接到字符串 1的后面,结果放在字符数组 1中,函数调用后返回字符数组 1的地址。本题定义了三个字符数组 pl,p2,str,strcat(pl,p2)函数的作用是将字符串数组 p2接到字符串 p1的后面,结果放在字符数组 p1中,再通过 strcpy()函数将该字符串拷贝到 str数组中,原 str数组中的字符串 xyz被覆盖,因此打印输出字符串 str即可得到 abcABC。18.有以下程序: #includestdio.h main() int a=1,b=2,c=3,x; x=(ab)c

    29、; printf(“%d/n“,x); 程序运行后的输出结果是_。(分数:1.00)A.3 B.1C.2D.0解析:解析 本题考查位运算符以及相关运算,为按位或,为按位与,那么 ab为 3,再与 c按位与仍然为 3,所以答案为 A选项。19.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN; 解析:解析 C 语言不允许定义动态数组,定义数组的大小必须为常量表达式。A 选项错误,C 语言中数组没有此类型的定义方法;B 选项错误,定义数组应指明数组大

    30、小,如果不指明数组大小,需要给定初值的个数;C 选项错误,N 为变量,不能用来定义数组大小。因此 D选项正确。20.下列合法的声明语句是_。(分数:1.00)A.int _abc=50; B.double int=3+5e2.5;C.long do=1L;D.float 3_asd=3e-3;解析:解析 标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线。B 选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。C 选项 do是 C语言的一个关键字。D 选项标识符只能以字母或下划线开始。21.若有以下程序: #includestdio.h void fun(flo

    31、at*a, float*b) float w; *a=*a+*a; w=*a; *a=*b; *b=w; main() float x=20, y=3.0, *px= fun(px, py); printf(“%2.0f, %2.0f/n“, x, y); 程序的输出结果是_。(分数:2.50)A.4,3B.2,3C.3,4 D.3,2解析:解析 #includestdio.h void fun(float*a,float*b)/a 即指向 px的指针,b 即指向 py的指针,则*a 指向 x,*b 指向 y float w; *a=*a+*a;/将 x地址存放的数据自加,x 变为 4 w=*

    32、a; *a=*b; *b=w; /将 x和 y地址里面的数据互换,则 x变为 3,y 变为 4 main() float x=2.0, y=3.0, *px= /px和 py分别是指向 x和 y地址的指针 fun(px, py); printf(“%2.0f, %2.0f/n“, x, y); /%2.0f表示结果前面有 2个空格,小数点后有 0位,即保留到个位 22.以下程序调用 fun函数求数组中最大值所在元素的下标: #includestdio.h void fun(int*s,int n,int*k) int i; for(i=0,*k=i;in;i+) if(sis*k)_; mai

    33、n() int a5=1,6,2,8,0,k; fun(a,5,k); printf(“%d%d/n“,k,ak); 在横线处应填入的内容是_。(分数:1.00)A.*k=i B.k=iC.*k=i-sD.k=i-s解析:解析 fun 函数的功能是求数组中最大值所在元素的下标。通过 for循环语句,每次将最大的数给*k,即*k=i。因此 A选项正确。23.以下叙述中正确的是(分数:1.00)A.C程序中注释部分可以出现在程序中任意合适的地方 B.花括号“”和“”只能作为函数体的定界符C.构成 C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是 C语句之间的分隔符,不是语句的一部分解析

    34、:解析 C 语言函数、语句的概念、注释以及 C程序的基本结构,“/*”与“*/”之间的信息称为注释信息,在 C语言中,允许在任何能够插入空格符的位置插入注释,但 C语言的注释不能进行嵌套;在C语言中,函数体是从花括号“”开始,到花括号“”结束。但没有规定花括号“”和“”只能作为函数体定界符;选项 C中前半句是正确的,在 C程序中由有一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数比如库函数,主函数 main()就不能由用户来命名;在 C语言中明确规定每条语句以分号“;”结束,分号是语句不可缺少的一部分。24.有三个关系 R、S 和 T如下: R A B C a 1 2 b 2

    35、1 c 3 1 S A D c 4 T A B C D c 3 1 4 则由关系 R和 S得到关系 T的操作是_。(分数:1.00)A.自然连接 B交C.投影D并解析:解析 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此根据 T中元组可以判断关系 R和 S做的是自然连接操作,答案为A。25.若 i、j 已定义成 int型,则下列程序段中内循环体的总执行次数是_。 for(i=6; i0; i-) for(j=0; j4; j+)(分数:2.50)A.20B.24 C.25D.30解析:解析 本题考查 for循环的使用。对于第

    36、 1个 for循环,任何一个 i,内层 j的循环都要使 j=0到 3,j=4 时不符合,所以退出 j循环;然后 i减 1,j 仍然要从 03,j=4 时退出 j循环直到 i变成 0,退出 i循环。第一条 for语句执行 6次,第二条 for语句执行 4次,所以内循环体执行 6*4=24次。26.设一棵树的度为 3,共有 27个结点,其中度为 3,2,0 的结点数分别为 4,1,10。该树中度为 1的结点数为_。(分数:1.00)A.12 B.13C.11D.不可能有这样的树解析:解析 在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。 根据题意,度为 3的树第

    37、1层 1个根结点,第 2层 3个子结点,每个子结点下各 3个子结点,所以第 3层共 9个子结点,前 3层共 13个结点。第 3层有一个结点度为 2即有 2个子结点,本层其他结点各 1个子结点;即第 4层共 10个结点。前 4层共 23个结点。第 4层中的两个结点下各有一个子结点,即第 5层有2个结点,此 2个结点下各有一个子结点。 第 3层有 8个度为 1的结点,第 4层有 2个度为 1的结点,第 5层有 2个度为 1的结点,8+2+2=12。故本题答案为 A选项。27.设有如下定义: int arr=6, 7, 8, 9, 10; int*ptr; ptr=arr; *(ptr2)=2; p

    38、rintf(“%d, %d/n“, *ptr, *(ptr2); 则下列程序段的输出结果为_。(分数:2.50)A.8,10B.6,8C.7,9D.6,2 解析:解析 程序中 ptr指针指向数组 arr的首地址,*ptr=arr0=6,*(ptr2)=2,故选 D。28.有以下程序: #includestdio.h int m=13; int fun2(int x, int y) int m=3; return(x*y-m); main() int a=7, b=5; printf(“%d/n“, fun2(a, b)/m); 程序运行后的输出结果是(分数:1.00)A.1B.2 C.7D.1

    39、0解析:29.有以下程序 #includestdio.h main() int i, t3=9, 8, 7, 6, 5, 4, 3, 2, 1; for(i=0; i3; i+) printf(“%d“, t2-ii); 程序执行后的输出结果是_。(分数:2.00)A.3 5 7 B.7 5 3C.3 6 9D.7 5 1解析:解析 本题考查的是 for循环与二维数组的定义和引用。当定义二维数组的初始化列表只使用一重花括号时,其中的每个值依次代表从第 1行的第 1个元素起,直到第 1行满,接着代表第 2行、第 3行的每一个元素。程序中的循环将循环 3次,循环变量 i的值分别是 0、1、2,所以

    40、 3次循环中输出的数分别是:t2-00、t2-11、t2-22,即 t20、t11、t02,所以最后输出的结果为 3 5 7。故应该选择 A。30.以下叙述中错误的是_。(分数:1.00)A.只要类型相同,结构体变量之间可以整体赋值B.函数的返回值类型不能是结构体类型,只能是简单类型 C.可以通过指针变量来访问结构体变量的任何成员D.函数可以返回指向结构体变量的指针解析:解析 本题考查结构体相关知识。函数返回值可以是结构体,所以 B选项错误。31.若有下列定义(设 int类型变量占 2个字节): int i=8, j=9; 则下列语句: printf(“i=%d, j=%d/n“, i, j)

    41、; 输出的结果是_。(分数:2.50)A.i=8, j-9B.i=%d, j=%d C.i=%8, j=%9D.8, 9解析:解析 本题考查函数的输出格式。在 printf函数中,格式说明符中有两个“%”,表示将第 1个%后面的字符原样输出,并不输出其对应的变量值。32.下列定义变量的语句中错误的是_。(分数:2.50)A.int_int;B.double int_;C.char For;D.float US$; 解析:解析 C 语言规定,变量的标识符只能由字母、数字和下划线 3种字符组成,且首字符必须为字母或下划线。在 C语言中大写字母和小写字母被认为是两个不同的字符。选项 A定义的变量标识

    42、符 int和选项 B定义的变量标识符 int与 C语言的关键字 int是不同的,是正确的变量标识。选项 C定义的变量标识符 For与 C语言中的关键字 for是两个不同的标识符,所以选项 C是正确的,而选项 D包含有特殊字符$,因而其不符合 C语言的变量命名规定。33.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_ B.8_8C.voidD.unsigned解析:解析 C 语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B 选项中以数字 8开头,所以错误。C 与 D中用的是关键字 void与 unsigned,因此错误。故本题答案为 A。34.设有输入语句 scanf(“a=%d,b=%d,c=%d“, int i=0;,以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.00)A.gets(s);B.while(si+=getchar()!=“/n“); si=“/0“;C.scanf(“%s“, s); D.do scanf(“%c“, while(si+!=“/n“); si=“/0“;解析:解析 字符串的输入不能使用 scanf(“%s“, s);而应该使用 gets(s)。


    注意事项

    本文(【计算机类职业资格】二级C语言分类模拟题508及答案解析.doc)为本站会员(deputyduring120)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开