【计算机类职业资格】二级C语言程序设计-6及答案解析.doc
《【计算机类职业资格】二级C语言程序设计-6及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言程序设计-6及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言程序设计-6 及答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:21,分数:42.00)1.有以下程序:#includestdio.h#define MIN(x, y)(x)(y)?(x):(y)main() int i, j, k;i=10; j=15; k=10*MIN(i, j); printf(“%d/n“, k);程序的运行结果是 A.15 B.100 C.10 D.150(分数:2.00)A.B.C.D.2.有以下程序:#includestdio.h#define N 2#define M N+1#define NUM(M+1)*M/2mai
2、n() int i;for(i=1; i=NUM; i+); printf(“%d/n“, i);程序中的 for循环执行的次数是 A.5 B.6 C.8 D.9(分数:2.00)A.B.C.D.3.有以下程序:#includestdio.h#define FUDGF(y) 2.84+y#define PR(a) printf(“%d“, (int)(a)#define PRINT1(a) PR(a); putchar(/n)main() int x=2;PRINT1(FUDGF(5)*x);程序的运行结果是 A.11 B.12 C.13 D.15(分数:2.00)A.B.C.D.4.有以下程
3、序:#includestdio.h#includestdlib.hfut(int*s, int p23) *s=p11; main()int a23=1, 3, 5, 7, 9, 11, *p;p=(int*) malloc(sizeof(int); fut( printf(“%d/n“, *p);程序的运行结果是 A.1 B.7 C.9 D.11(分数:2.00)A.B.C.D.5.设有以下语句:double *p;p=_malloc(sizeof(double);若要使指针 p指向一个 double类型的动态存储单元,在下划线处应填入的是 A.double B.double* C.(*do
4、uble) D.(double*)(分数:2.00)A.B.C.D.6.有以下程序:#includestdio.h#includestdlib.hvoid fun(float*p1, float*p2, float*s)s=(float*) calloc (1, sizeof(float);*s=*p1+*p2+;main()float a2=1.1, 2.2, b2=10.0, 20.0, *s=a;fun(a, b, s); printf(“%5.2f/n“, *s);程序的运行结果是 A.11.10 B.12.00 C.21.10 D.1.10(分数:2.00)A.B.C.D.7.以下叙
5、述中正确的是 A.用#include 包含的头文件的后缀不可以是“.a” B.若一些源程序中包含某个头文件,当该头文件有错时,只需对该头文件进行修改,包含此头文件的所有源程序不必重新进行编译 C.宏命令行可以看做是一行 C语句 D.C编译中的预处理是在编译之前进行的(分数:2.00)A.B.C.D.8.有以下定义:struct personchar name9; int age; ;struct person class10=“Johu“, 17,“Paul“, 19,“Mary“, 18,“Adam“, 16,;则下面能输出字母 M的语句是 A.printf(“%c/n“, class3.n
6、ame); B.printf(“%c/n“, class3.name1); C.prinff(“%c/n“, class2.name1); D.printf(“%c/n“, class2.name0);(分数:2.00)A.B.C.D.9.有以下程序:#includestdio.hmain() struct cmplxint x; int y; cnum2=1, 3, 2, 7;printf(“%d/n“, cnum0.y/cnum0.x*cnum1.x); 程序的运行结果是 A.0 B.1 C.3 D.6(分数:2.00)A.B.C.D.10.若有以下定义和语句:struct st int
7、n;struct st*next;struct st a3, *p;a0.n=5; a0.next= a1.n=7; a1.next= a2.n=9; a2.next=/0;p=则以下值为 6的表达式是 A.p+-n B.p-n+ C.+(*p).n D.+p-n(分数:2.00)A.B.C.D.11.有以下程序:#includestdio.hmain() union short i2;long k;char c4;r, *s=s-i0=0x39; s-i1=0x38;printf(“%x/n“, s-c0);已知字符 0的 ASCII码值的十进制数是 48,且数组的第 0个元素在低位。以上程
8、序的运行结果是 A.39 B.9 C.38 D.8(分数:2.00)A.B.C.D.12.有以下程序(若 long型和 int型数据均占 4字节):#includestdio.htypedef unionlong x2; int y4; char z8; MYTYPE;MYTYPE them;main()printf(“%d/n“, sizeof(them); 程序的运行结果是 A.32 B.16 C.8 D.24(分数:2.00)A.B.C.D.13.有以下程序:#includestdio.hstruct st int x;int *y;*p;int dt4=10, 20, 30, 40;s
9、truct st aa4=50, main()p=aa; printf(“%d/n“, +p-x);printf(“%d/n“, (+p)-x); printf(“%d/n“, +(*p-y);程序的运行结果是 A.10 20 20 B.50 60 21 C.51 60 11 D.60 70 31(分数:2.00)A.B.C.D.14.若已建立如图所示的链表结构,指针 p、s 分别指向图中所示结点:(分数:2.00)A.B.C.D.15.没有以下定义和语句:struct STDchar name10;int age; int sex;s5, *ps;ps=下面 scanf函数调用语句中对结构体
10、变量成员引用错误的是 A.scanf(“%s“, s0.name); B.scanf(“%d“, C.scanf(“%d“, D.scanf(“%d“, ps-age);(分数:2.00)A.B.C.D.16.有以下程序:#includestdio.hmain()char x=040;printf(“%d/n“, x=x (分数:2.00)A.B.C.D.17.设有定义语句:char a=3, b=6, c;则执行赋值语句 c=ab (分数:2.00)A.B.C.D.18.有以下程序:#includestdio.hmain()short int x=35; char z=A;printf(“%
11、d/n“, (x程序运行后的输出结果是 A.0 B.1 C.2 D.3(分数:2.00)A.B.C.D.19.有以下程序:#includestdio.hmain()short int a=5, b=6, c=7, d=8, m=2, n=2;printf(“%d/n“, (m=ab)程序运行后的输出结果是 A.0 B.1 C.2 D.3(分数:2.00)A.B.C.D.20.标准库函数 fgets(s, n, f)的功能是 A.从文件 f中读取长度为 n的字符串存入指针 s所指的内存 B.从文件 f中读取长度不超过 n-1的字符串存入指针 s所指的内存 C.从文件 f中读取 n个字符串存入指针
12、 s所指的内存 D.从文件 f中读取长度为 n-1的字符串存入指针 s所指的内存(分数:2.00)A.B.C.D.21.若 fp是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是 A.EOF B.-1 C.非零值 D.NULL(分数:2.00)A.B.C.D.二、B填空题/B(总题数:15,分数:30.00)22.以下程序运行后的输出结果是_。 #includestdio.h #define PR(ar) printf(“ar=%d“, ar) main() int j, a=1, 3, 5, 7, 9, 11, 13, 15, *p=a+5; for(j=3; j;
13、j-) switch(j) case 1 : case 2 : PR(*p+); break; case 3 : PR(*(-p); (分数:2.00)填空项 1:_23.以下程序的功能是:调用 getone函数开辟一个动态存储单元,调用 assone函数把数据输入到此动态存储单元,调用 outone函数输出此动态存储单元中的数据。请填空。 #includestdlib.h #includestdio.h void getone(int *s)*s=(_) malloc (sizeof(int); void assone(int*s)scanf(“%d“, _); void outone(in
14、t*b)printf(“%d/n“, _); main() int*p; getone( assone(p); outone(p); (分数:2.00)填空项 1:_24.为了建立如图所示的存储结构(即每个结点含两个域,data 是数据域,next 是指向结点的指针域),请填空。 (分数:2.00)填空项 1:_25.以下 mymin函数的功能是:在如图所示的带有头结点的单向链表中,查找结点数据域的最小值作为函数值返回。请填空。 (分数:2.00)填空项 1:_26.以下函数 creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾,单向链表的头指针作为函数值返回。请填空。 #
15、includestdio.h #includestdlib.h struct list char data; struct list*next; ; struct list*creat() struct list*h, *p, *q; char ch; h=_ malloc (sizeof(_); p=q=h; ch=getchar(); while(ch!=?) p=_ malloc (sizeof (_); p-data=ch; q-next=p; q=p; ch=getchai(); p-next=/0; _; (分数:2.00)填空项 1:_27.设变量 a的二进制数是 0010110
16、1,若想通过运算 ab使 a的高四位取反,低四位不变,则 b的二进制数应是 1。(分数:2.00)填空项 1:_28.a为任意整数。能将变量 a清零的表达式是 1。(分数:2.00)填空项 1:_29.a为八进制数 07101。能将变量 a中的各二进制位均置成 l的表达式是 1。(分数:2.00)填空项 1:_30.能将两字节变量 x的高八位全置 1,低八位字节保持不变的表达式是 1。(分数:2.00)填空项 1:_31.运用位运算,能将八进制数 012500除以 4,然后赋给变量 a的表达式是 1。(分数:2.00)填空项 1:_32.运用位运算,能将字符型变量 ch中的大写字母转换成小写字
17、母的表达式是 1。(分数:2.00)填空项 1:_33.以下 C程序将磁盘中的一个文件复制到另一个文件中,两个文件名已在程序中给出(假定文件名无误)。请填空。 #includestdio.h main() FILE*f1, *f2; f1=fopen(“file_a.dat“, “r“); f2=fopen(“file_b.dat“, “w“); while(_) fputc (fgetc(f1), _); _; _; (分数:2.00)填空项 1:_34.以下程序由终端键盘输入一个文件名,然后把终端键盘输入的字符依次存放到该文件中,用#号作为结束输入的标志。请填空。 #includestdi
18、o.h #includestdlib.h main() FILE*fp; char ch, fname10; printf(“Enter the name of file/n“); gets(fname); if(fp=_)=NULL)printf(“Open error/n“); exit(0); printf(“Enter data: /n“); while(ch=getchar()!=#) fputc(_, fp); fclose(fp); (分数:2.00)填空项 1:_35.以下程序用来统计文件中字符的个数。请填空。 #includestdio.h main() FILE*fp; l
19、ong num=0; fp=fopen(“fname.dat“, _); while _ _; nun+; printf(“nun=%ld/n“, nun); fclose(fp); (分数:2.00)填空项 1:_36.假定磁盘当前目录下有文件名为 a.dat、b.dat、c.dat 三个文本文件,文件中内容分别为:aaaa#、bbbb#和 cccc#,执行以下程序后将输出_。 #includestdio.h void fc(FILE*); main() FILE *fp; int i=3; char fname10=“a.dat“, “b.dat“, “c.dat“; while(-i=0
20、) fp=fopen(fnamei, “r“); fc(fp); fclose(fp); void fc(FILE*ifp) char *c; while (c=getc(ifp)!=#)putchar(c-32); (分数:2.00)填空项 1:_三、B编程题/B(总题数:1,分数:12.00)已知 head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。请分别编写函数,在链表中查找数据域值最大的结点:(分数:12.00)(1).由函数值返回找到的最大值。(分数:3.00)_(2).由函数值返回最大值所在结点的地址值。(分数:3.00)_(
21、3).请调用 fputs函数,把 10个字符串输出到文件中;再从此文件中读入这 10个字符串放在一个字符串数组中;最后把字符串数组中的字符串输出到终端屏幕,以检验所有操作是否正确。(分数:3.00)_(4).从键盘输入 10个浮点数,以二进制形式存入文件中。再从文件中读出数据显示在屏幕上。(分数:3.00)_二级 C语言程序设计-6 答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:21,分数:42.00)1.有以下程序:#includestdio.h#define MIN(x, y)(x)(y)?(x):(y)main() int i, j, k;i=10; j=1
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言程序设计 答案 解析 DOC
