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

    [计算机类试卷]国家二级C语言机试(选择题)模拟试卷24及答案与解析.doc

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

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

    [计算机类试卷]国家二级C语言机试(选择题)模拟试卷24及答案与解析.doc

    1、国家二级 C语言机试(选择题)模拟试卷 24及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)算法的时间复杂度与空间复杂度没有直接关系 2 下列叙述中正确的是 ( A) 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态 变化 ( D)以上说法都不对 3 一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,

    2、则该二叉树中的总结点数为 ( A) 219 ( B) 229 ( C) 230 ( D) 231 4 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( A) 9 ( B) 10 ( C) 45 ( D) 90 5 构成计算机软件的是 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 6 软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是 ( A)测 试 ( B)设计 ( C)可行性研究 ( D)实现 7 下面不能作为结构化方法软件需求分析工具的是 ( A)系统结构图 ( B)数据字典 (DD) ( C)数据流程图 (

    3、DFD图 ) ( D)判定表 8 在关系模型中,每一个二维表称为一个 ( A)关系 ( B)属性 ( C)元组 ( D)主码(键) 9 若实体 A和 B是一对多的联系,实体 B和 C是一对一的联系,则实体 A和 C的联系是 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 10 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( A)选择 ( B)投影 ( C)交 ( D)并 11 我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 ( A)一条 C语句可能会被转换成零条机器指令 ( B)一条 C语句可能会被转换成多

    4、条机器指令 ( C)一条 C语句对应转换成一条机器指令 ( D)某种类型和格式的 C语句被转换成机器指令的条数是固定的 12 关于 “while(条件表达式 )循环体 “,以下叙述正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数总 是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数一样 ( D)条件表达式的执行次数与循环体的执行次数无关 13 关于 C语言的符号常量,以下叙述中正确的是 ( A)符号常量的符号名是标识符,但必须大写 ( B)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量 ( C)符号常量在整个程序

    5、中其值都不能再被重新定义 ( D)符号常量的符号名必须是常量 14 若有以下程序 #include main() int b=10, a=-11; a %= b %= 4; printf(“%d %dn“, a, b); 则程序的输出结果是 ( A) 1 2 ( B) -1 2 ( C) -1 -2 ( D) 1 -2 15 若有以下程序 #include main() int a=0,b=0,c=0; c= (a -= +a), (a+=b, b+=4); printf(“%d,%d,%dn“,a,b,c); 则程序的输出结果是 ( A) 0,4,0 ( B) 0,4,4 ( C) 1,4,

    6、1 ( D) 1,4,4 16 若有以下程序 #include main() int a=0,b=0,c=0,d; c= (a+=b, b+=a);/*第 4行 */ d=c;/*第 5行 */ ;/*第 6行 */ ;printf(“%d,%d,%dn“,a,b,c);/*第 7行 */ 编译时出现错误,你认为出错的是 ( A)第 4行 ( B)第 5行 ( C)第 6行 ( D)第 7行 17 若有以下程序 #include main() int a=1,b=2,c=3,d=4; if (a=2) | (b=1) c=2; if (c=3) printf(“%d,%d,%d,%dn“, a

    7、,b,c,d); 则程序的输出结果是 ( A) 1,2,3,4 ( B) 2,1,2,-1 ( C) 5,1,2,-1 ( D) 2,2,2,4 18 若有以下程序 #include main() int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b=2) r+=2; else; if (c!=3) r+=3; else; if (d=4) r+=4; printf(“%dn“, r); 则程序的输出结果是 ( A) 10 ( B) 7 ( C) 6 ( D) 3 19 若有以下程序 #include main() int s=0, n;

    8、for (n=0; n 4; n+) switch(n) default: s+=4; case 1: s+=1; case 2: s+=2; case 3: s+=3; printf(“%dn“, s); 则程序的输出结果是 ( A) 6 ( B) 18 ( C) 10 ( D) 24 20 若有以下程序 #include main() int a=-2, b=0; while(a+) +b ; printf(“%d,%dn“, a, b); 则程序的输出结果是 ( A) 1,2 ( B) 0,2 ( C) 1,3 ( D) 2,3 21 若有以下程序 #include main() int

    9、 a=6, b=0, c=0; for ( ;a; ) b += a; a -= +c; printf(“%d,%d,%dn“, a,b,c); 则程序的输出结果是 ( A) 1,14,3 ( B) 0,14,3 ( C) 0,18,3 ( D) 0,14,6 22 以下选项中非法的 C语言字符常量是 ( A) 007 ( B) b ( C) aa ( D) xaa 23 若有以下程序 #include char f(char x) return x*x+a; main() char a, b=0; for ( a=0; a 4; a+=1 ) b = f (A(; putchar(B); 则

    10、程序的输出结果是 ( A) abcd ( B) ABEJ ( C) abej ( D) ABCD 24 若有以下程序 #include void sp(int *a) int b=2; a=*a = *a * 2; printf(“%d,“, *a); main() int k=3, *p= sp(p); printf(“%d,%dn“, k, *p); 则程序的输出结果是 ( A) 4,3,3 ( B) 4,3,4 ( C) 6,3,6 ( D) 6,6,6 25 若有以下程序 #include int k=7; void f(int *s) int *t= *s=t; printf(“%d

    11、,%d,%d,“, k, *t, *s); main() int i=3,*p= f(r);printf(“%d,%d,%dn“, i, *p, *r); 则程序的输出结果是 ( A) 3,3,3,7,7,7 ( B) 3,7,7,7,7,7 ( C) 7,7,7,3,3,3 ( D) 7,7,7,3,7,7 26 若有以下程序 #include int *f(int *s,int *t) int *k; if (*s *t) k = s; s=t; t=k; return s; main() int i=3, j=5, *p= r=f(p,q); printf(“%d,%d,%d,%d,%d

    12、n“, i, j, *p, *q, *r); 则程序的输出结果是 ( A) 3,5,5,3,5 ( B) 3,5,3,5,5 ( C) 5,3,5,3,5 ( D) 5,3,3,5,5 27 若有以下程序 #include #define N 4 void fun(int aN, int b, int flag) int i,j; for(i=0; i N; i+) bi = ai0; for(j=1; j N; j+) if (flag ? (bi aij) : (bi void fun(int a , int n) int t,i,j; for (i=1; i n; i+=2) for (

    13、j=i+2; j n; j+=2) if (ai aj) t=ai; ai=aj;aj=t; main() int c10=10,9,8,7,6,5,4,3,2,1,i; fun(c, 10); for (i=0;i 10; i+) printf(“%d,“, ci); printf(“n“); 则程序的输出结果是 ( A) 1,10,3,8,5,6,7,4,9,2, ( B) 10,9,8,7,6,5,4,3,2,1, ( C) 2,9,4,7,6,5,8,3,10,1, ( D) 10,1,8,3,6,5,4,7,2,9, 29 若有以下程序 #include main() int i,j

    14、=0; char a=“How are you!“; for (i=0; ai; i+) if (ai != ) aj+=ai; aj=0; printf(“%sn“,a); 则程序的输出结果是 ( A) Hay! ( B) Howareyou ( C) Howareyou! ( D) How are you! 30 若有以下程序 #include char *a=“you“; char b =“Welcome you to China!“; main() int i, j=0;char *p; for ( i=0; bi !=0; i+ ) if (*a = bi) p=a; for (j=

    15、i; *p!=0; j+) if (*p != bj) break; p+; if (*p=0) break; printf(“%s“, 则程序的输出结果是 ( A) China! ( B) to China! ( C) me you to China! ( D) you to China! 31 若有以下程序 #include main() char a20, b =“The sky is blue.“;int i; for (i=0; i 7; i+) scanf(“%c“, gets (A);printf(“%s%sn“, a,b); 执行时若输入 : (其中 表示回车符 ) Fig f

    16、lower is red. 则输出结果是 ( A) wer is red.Fig flo is blue. ( B) wer is red.Fig flo. ( C) wer is red.The sky is blue. ( D) Fig flower is red.The sky is blue. 32 若有以下程序 #include main() char w20, a510=“abcdef“, “ghijkl“, “mnopq“, “rstuv“, “wxyz“; int p62=0,1,1,5,0,0,0,2,1,4,4,4, i; for (i=0; i 6; i+) wi=a p

    17、i0 pi1 ; puts(w); 则程序的输出结果是 ( A) catis ( B) ababj ( C) ckbdl ( D) black 33 若有以下程序 #include void f(int x) if (x = 10) printf(“%d-“, x%10);f(x/10); else printf(“%d“, x); main() int z = 123456; f(z); 则程序的输出结果是 ( A) 6-5-4-3-2-1- ( B) 6-5-4-3-2-1 ( C) 1-2-3-4-5-6 ( D) 1-2-3-4-5-6- 34 若有以下程序 #include int

    18、a=2; int f(int m) static int n; n=0; n+; a+; return n+m+a; main() int k; for (k=0; k #define S(x) x*x #define T(x) S(x)*S(x) main() int k=5, j=2; printf(“%d,%dn“, S(k+j),T(k+j); 则程序的输出结果是 ( A) 17,289 ( B) 49,2401 ( C) 17,37 ( D) 49,289 36 若有以下程序 #include #include #include struct stu char *name, gend

    19、er; int score; ; main() struct stu a=NULL, m, 290, b; a.name=(char *)malloc(10); strcpy(a.name, “Zhao“); b = a; b.gender = f; b.score = 350; strcpy(b.name, “Qian“); printf( “%s,%c,%d,“, a.name, a.gender, a.score ); printf( “%s,%c,%dn“, b.name, b.gender, b.score ); 则程序的输出结果是 ( A) Zhao,m,290,Zhao,f,35

    20、0 ( B) Zhao,m,290,Qian,f,350 ( C) Qian,f,350,Qian,f,350 ( D) Qian,m,290,Qian,f,350 37 若有以下程序 #include #include #include typedef struct stu char *name, gender; int score; STU; void f(char *p) p=(char *)malloc(10); strcpy(p, “Qian“); main() STU a=NULL, m, 290, b; a.name=(char *)malloc(10); strcpy( a.n

    21、ame, “Zhao“ ); b = a; f(b.name); b.gender = f; b.score = 350; printf(“%s,%c,%d,“, a.name, a.gender, a.score); printf(“%s,%c,%dn“, b.name, b.gender, b.score); 则程序的输出结果是 ( A) Zhao,m,290,Qian,f,350 ( B) Zhao,m,290,Zhao,f,350 ( C) Qian,f,350,Qian,f,350 ( D) Qian,m,290,Qian,f,350 38 若有定义 typedef int* T;

    22、T a10; 则 a的定义与下面哪个语句等价 ( A) int (*a)10; ( B) int *a10; ( C) int *a; ( D) int a10; 39 若有以下程序 #include main() int c; c= 105; printf(“%dn“, c); 则程序的输出结果是 ( A) 5 ( B) 15 ( C) 10000 ( D) 105 40 若有以下程序 #include main() FILE *fp; int i, a6=1,2,3,4,5,6,k; fp = fopen(“data.dat“, “w+“); for (i=0; i 6; i+) fsee

    23、k(fp, 0L, 0);fprintf(fp, “%dn“, ai); rewind(fp); fscanf(fp, “%d“, fclose(fp); printf(“%dn“, k); 则程序的输出结果是 ( A) 123456 ( B) 1 ( C) 6 ( D) 21 国家二级 C语言机试(选择题)模拟试卷 24答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂 度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为 D。 2 【正确答案】 A 【试题解析】 在循环队列中,用队尾指针 rear指

    24、向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置。因此,从排头指针 front指向的后一个位置直到队尾指针 rear指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数与队头指针和队尾指针的变化而变化, A正确。 3 【正确答案】 B 【试题解析】 二叉树中,度为 0的节点数等于度为 2的节点数加 1,即 n2=n0-1,叶子节点即 度为 0,则 n2=79,总结点数为 n0+n1+n2=80+70+79=229,答案为B。 4 【正确答案】 C 【试题解析】 冒泡法是在扫描过程中逐次比较相邻两个元素的大小,最坏的情况是每次比较都要将相邻的两个元素互换,需要互换

    25、的次数为9+8+7+6+5+4+3+2+1=45,选 C。 5 【正确答案】 D 【试题解析】 软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选 D。 6 【正确答案】 C 【试题解析】 开发阶段包括分析、设计和实施两类任务。其中 分析、设计包括需求分析、总体设计和详细设计 3个阶段,实施则包括编码和测试两个阶段, C不属于开发阶段。 7 【正确答案】 A 【试题解析】 结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。 8 【正确答案】 A 【试题解析】 关系模型采用二维表来表示,即每个二维表称为一个关系。 9 【正确答案】 B 【试题解析】

    26、A和 B为一对多的联系,则对于 A中的每一个实体, B中有多个实体与之联系,而 B与 C为一对一联系,则对于 B中的每一个实体, C中之多有一个实体与之联系,则可 推出对于 A中的每一个实体, C中有多个实体与联系,所以为一对多联系。 10 【正确答案】 D 【试题解析】 关系 T中的元素与关系 R和关系 S中不同元素的总和,因此为并操作。 11 【正确答案】 C 【试题解析】 一个 C语句经过编译后产生若干条机器指令,声明部分不是语句 ,不产生机器指令 ,只是对有关数据的声明,而且固定类型和格式的 C语句被转换成机器指令的条数固定,所以选择 C选项。 12 【正确答案】 B 【试题解析】 w

    27、hile循环是先判断条件 ,满足条件后执行循环体 ,执行完后接着判断条 件 ,执行 ,直到最后一次判断条件后不成立 ,跳出循环 ,所以最后一次执行了条件表达式 ,但是没有执行循环体 ,所以选择 B选项。 13 【正确答案】 B 【试题解析】 在 C语言中 ,可以用一个标识符来代表一个常量 ,称为符号常量,这个标识符必须在程序中进行特别的 “指定 “,并符合标识符的命名规则 ?用作符号常量的标识符通常采用大写字母表示 ,在主函数中其值不能再被定义,所以选择 B选项。 14 【正确答案】 B 【试题解析】 先计算 b%=4,即 b=b%4,结果为 2,然后计算 a%=2,结果为 -1,最后 a的值

    28、为 -1,b的值为 2,所以选择 B选项。 15 【正确答案】 A 【试题解析】 逗号运算符的结合性从左到右 ,因此逗号表达式将从左到右进行计算。且逗号运算符的优先级最低,所以先计算 c=(a-=+a)这部分。其中,赋值运算符从右往左计算 ,先执行 +a,a自增 1后再赋值 ,所以 a的值为 1,执行 a=a-1,即a=1-1,a的值为 0,并将 0赋给变量 c,第二部分 (a+=b,b+=4),先执行 a=a+b,a=0+0,即 a的值为 0,然后执行 b+=4,b=0+4,即 b的值为 4,所以打印结果为 0,4,0,选择 A选项。 16 【正确答案】 A 【试题解析】 第 4行逗号表达式

    29、中间的第二个表达式为空,是不合法的 ,可以去掉写成 a+=b,b+=a,也可以在里面补一个表达式,如 a+=b,a,b+=a?所以选择 A选项。 17 【正确答案】 D 【试题解析】 第一个 if语句的判断条件中是逻辑或表达式 ,所以只要有一个运算对象为真结果就为真 ,且如果前面的已经为真 ,后面的表达式不再进行执行判断,执行第一个 if判断条件时 a的值为 2,整个表达式的值为真 ,b的值不变 ,c的值为 2,判断第二个 if条件为逻辑与表达式 ,只有两个运算对象均非零 ,才为真 ,第一个表达式c=3,不成立 ,不再判断第二个运算对象 ,所以不执行 d=-1操作和 a=5操作 ?所以结果为选

    30、项 D。 18 【正确答案】 B 【试题解析】 else总是和与之最近的上面的 if配对 ,执行第一个 if,判断条件不成立 ,执行 else r=1;语句 ?再执行第二个 if语句中的判断条件 ,成立 ,左移执行 r+=2,r的值为 3,再执行第三个 if的判断条件 ,不成立执行第 7行 else后面的空语句 “;“,再执行第四个 if的判断条件 d=4成立 ,执行 r+=4,r的值为 7,然后打印输出。 19 【正确答案】 D 【试题解析】 第一次 for循环 ,n的值为 0,所以从 default后面的语句开始执行 ,s+=4,s+=1,s+=2,s+=3,s的值为 10,在进入第二次

    31、for循环 ,n的值为 1,所以执行s+=1,s+=2,s+=3,s的值为 16,在进入第三次 for循环 ,n的值为 2,所以执行s+=2,s+=3,s的值为 21,在进入第四次 for循环 ,n的值为 3,所以执行 s+=3,s的值为24。 20 【正确答案】 A 【试题解析】 第一次 while判断条件中 a+,先用后加 ,为 -2不为 0条件为真 ,执行 a的自加 与 +b操作 ,a的值变为 -1,b的值变为 1,第二次 while判断后 ,a的值变为 0,b的值变为 2,第三次 while判断条件为假 ,但是仍要执行自加操作 ,即值为 1,跳出循环,打印 1和 2。 21 【正确答案

    32、】 B 【试题解析】 本循环的条件判断时只要 a为 0就退出循环体 ,初始值 a的值为 6,满足条件执行完循环体 ,b的值为 6,a-=+ +c即 a=a-(+c),所以 a的值为 5,c的值为1,第二次循环后 b的值为 11,a的值为 3,c的值为 2,第三次也是最后循环后 ,a的值为 0,b的值 14,c的值为 3。 22 【正 确答案】 C 【试题解析】 C选项中是字符串常量 ,应该用双引号表示即 “aa“,所以选择 C选项。 23 【正确答案】 C 【试题解析】 该题目首先初始化变量 a和 b,通过 for循环语句使 a取值为 0、1、 2、 3, f函数的功能是将 a*a+a的值返回

    33、给 b,即 b为 a、 b、 e、 j。最后通过字符输出函数 putchar()将 b输出。因此 C选项正确。 24 【正确答案】 A 【试题解析】 首先在主函数中给整型变量 k赋值为 3,将变量 k的地址赋给指针变量 p;调用 sp函数,将实参 p的值传给形参 a,在 sp函数中,指针变量 a又获得变量 b的地址,通过运算后,输出 a的值为 4;返回主函数,输出 k的值和 p的值为 3和 3。因此 A选项正确。 25 【正确答案】 D 【试题解析】 在主函数中分别给整型变量 i,指针型变量 p和指向指针的指针变量r赋初值 ;调用 f函数 ,并将实参变量 r的值传递给形参变量 s,在 f函数中

    34、 ,通过printf(“%d,%d,%d,“, k, *t, *s);语句输出 7,7,7;返回主函数 ,通过printf(“%d,%d,%dn“, i, *p, *r);输出 3,7,7。因此 D选项正确。 26 【正确答案】 B 【试题解析】 在主函数中分别给整型变量 i、 j和指针型变量 p、 q赋初值,并声明指针变量 r;调用 f函数,并将实参变量 p和 q的值传递给形参变量 s和 t,并且 f函数是指针型函数,即函数的返回值将是一个地址。在 f函数中,如果条件成立,则将指针变量 s和 t互换,并且将指针 s的地址返回主函数。最后输出 i, j, *p, *q, *r的值,即 3,5,

    35、3,5,5。因此 B选项正确。 27 【正确答案】 A 【试题解析】 该题首先初始化二维数组 ,if (flag ? (bi aij) : (bi aij)作为条件表达式的值 ,否则以 (bi aij)作为条件表达式的值 ,fun函数功能是给一维数组赋值, fun(x, y, 1);该函数调用后 ,即当 flag为真时 ,使一维数组获得二维数组第 1列的数值 ;fun(x, y, 0);该函数调用后 ,即当 flag为假时 ,使一维数组获得二维数组第 4列的数值 ;因此 A选项正确。 28 【正确答案】 D 【试题解析 】 该题首先对一维数组进行初始化, c0到 c9依次赋值为 10到 1;f

    36、un(c, 10);语句调用 fun函数, fun函数的功能是将一维数组偶数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出。因此 D选项正确。 29 【正确答案】 C 【试题解析】 主函数中首先定义字符数组 a=“How are you!“;执行 for循环语句,语句 if (ai != ) aj+=ai; 其功能是将字符数组中的空格去掉。因此 C选项正确。 30 【正确答案】 D 【试题 解析】 该程序首先定义 *a和 b ,并进行初始化。主函数中通过外层 for循环语句,遍历字符数组 b ,并且将符合 if条件语句的字符赋给数组 p; for内层循环语句,遍历字符数组 a 。

    37、再将符合 if条件语句的结果输出。因此 D选项正确。 31 【正确答案】 A 【试题解析】 程序首先初始化字符数组 b,执行 for循环语句 ,循环变量 i的取值范围从 0到 6?在 for循环语句中通过 scanf函数将从键盘上输入的数据输入到 b 中 ,即 b的值为 Fig flo is blue.?退出 for循环语句 ,执行语句 gets 32 【正确答案】 D 【试题解析】 程序首先初始化字符数组 a510和二维数组 p62。执行 for循环语句,循环变量 i从 0取值到 5,得到字符数组 w 的值,并通过字符串输出函数 puts进行输出操作。 w0=a01、 w1=a15 、 w2

    38、=a00 、w3=a02 、 w4=a14 、 w5=a44;因此最后字符数组 w的结果为black。因此 D选项正确。 33 【正确答案】 B 【试题解析】 本题重点 考察函数的递归调用,程序首先初始化整型变量 z为123456,调用函数 f。 f函数中首先通过 if条件语句判断 x是否大于等于 10,如果条件成立,求 x除以 10的余数并输出,同时将变量 x进行 x/10运算,同时调用函数 f。如果条件不成立,直接输出变量 x。因此第 1次调用函数,变量 x为123456,条件成立,输出余数 6;第 2次调用函数,变量 x为 12345,条件成立,输出余数 5;第 3次调用函数,变量 x为

    39、 1234,条件成立,输出余数 4;第 4次调用函数,变量 x为 123,条件成立,输出余数 3;第 5次调用函数,变量 x为 12,条件成立 ,输出余数 2;第 6次调用函数,变量 x为 12345,条件不成立,输出1。因此 B选项正确。 34 【正确答案】 C 【试题解析】 主函数中变量 k作为 for语句的循环变量,取值 0、 1、 2、 3,同时也作为实参通过调用函数 f传递给形参变量 m。由于变量 a是全局变量,变量 n是static静态变量,因此 k=0时, f函数中,语句 return n+m+a;即 1+0+3=4; k=1时, f函数中,语句 return n+m+a;即 2

    40、+1+3=6; k=2时, f函数中,语句 return n+m+a;即 3+2+3=8; k=3时, f函数中,语句 return n+m+a;即 4+3+3=10。因此 C选项正确。 35 【正确答案】 C 【试题解析】 本题考查宏定义,宏定义只是做个简单的替换,执行S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j*k+j=37,选项 C正确。 36 【正确答案】 D 【试题解析】 本题中考查结构体中变量的引用, a结构体中 name被修改为Qian,所以本题答案为 D。 37 【正确答案】 B 【试题解析】 本题考查结构体变量中的 引用

    41、,其中 a的 name为 Zhao, b执行函数 f(b.name)后 b的 name并没有改变,还是 Zhao,所以答案为 B选项。 38 【正确答案】 B 【试题解析】 本题考查 typedef的使用方法, typedef对已存在的类型使用一个新的名字,其中本题中 int* 用 T来代替,所以定义 T a10;就相当于是 int *a10;选项 B正确。 39 【正确答案】 B 【试题解析】 本题考查位运算中按位异或运算符,异或运算只有在两个比较的位不同时其结果是 1,否则结果为 0, 10用二进制表示 为 00001010,5用二进制表示为 00000101,异或后 00001111,即 15,选项 B正确。 40 【正确答案】 C 【试题解析】 本题考查文件操作函数, fseek 用于二进制方式打开的文件 ,移动文件读写指针位置。将文件内部的位置指针重新指向一个流(数据流 /文件)的开头。所以最后只保留了 6,答案为 C。


    注意事项

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




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

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

    收起
    展开