【计算机类职业资格】福建省二级C语言-3及答案解析.doc
《【计算机类职业资格】福建省二级C语言-3及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】福建省二级C语言-3及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、福建省二级 C语言-3 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:42,分数:84.00)1.若有语句 int a=5, *p1= float f=10.5, *p2= ,则以下正确的赋值语句是_。(分数:2.00)A.f=*p1+*p2;B.p2=p1;C.p1=D.p2=2.若有: (1)int a=10, *pa; *pa=a; (2)int a=10, *pa= 则以下叙述正确的是_。(分数:2.00)A.(1)与(2)都能使指针 pa指向变量 aB.(1)将可能使系统出现无法预知的错误C.(2)将可能使系统出现无法预知的错误D.(1)和(2)都将可能使
2、系统出现无法预知的错误3.以下程序运行后的输出结果是_。 #includestdio.h int main() char c, *pc= int a, *pa= double f, *pf= printf(“%d %d %d/n“, sizeof(pc), sizeof(pa), sizeof(pf); return 0; (分数:2.00)A.1 4 8B.4 4 4C.4 4 8D.1 1 14.若有语句 int a10=1, 2, 3, *pa=a; ,则以下叙述错误的是_。(分数:2.00)A.pa与 a的值相等B.pa2与 a2的值相等C.*(pa+2)与 a2的值相等D.a+与 p
3、a+的作用相同5.若有语句 int a, b10, *point=b; ,则以下各项均代表地址的是_。(分数:2.00)A.B.k=*p1*(*p2);C.p1=p2;D.p2=k;7.以下程序运行后的输出结果是_。 #includestdio.h int main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *P=a; printf(“%d/n“, *(a+1)+*(p+2); return 0; (分数:2.00)A.2B.3C.4D.58.以下程序运行后的输出结果是_。 #includestdio.h int main() int a=10, 20,
4、 30, 40, 50, 60, 70, *p1, *p2; p1= p1+, p2-; printf(“%d/n“, p2-p1); return 0; (分数:2.00)A.4B.6C.40D.609.以下程序实现将数组元素中的最大值存放到 a0中,则 if语句中的条件表达式应是_。 #includestdio.h int main() int a10=3, 9, 6, 2, 15, 10, 25, 8, 14, 12, *p=a, i; p+; for(i=1; i10; i+, p+) if(_) a0=*p; printf(“%d“, *a); return 0; (分数:2.00)
5、A.pa0B.paC.*p*aD.*p*a010.以下程序执行后的输出结果是_。 #includestdio.h int main() int a33=1, 2, 3, 4, 5, 6, 7, 8, 9; int s, *p; p= s=(*p)+*(p+1)+*(p+2); printf(“%d“, s); return 0; (分数:2.00)A.6B.12C.15D.1811.若有以下语句: int a43, (*p)3; p=a; 则能正确引用 a数组元素的是_。(分数:2.00)A.*(p+4)B.p3C.*(p3+2)D.*(p+3)+212.以下程序运行后的输出结果是_。 #in
6、cludestdio.h int main() int a34=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, (*p)4; p=a; p+; printf(“%d“, *(*(p+1)+2); return 0; (分数:2.00)A.4B.5C.7D.1113.设 char*s=“ab/t/071a/0bc“; ,则指针变量 s指向的字符串的长度是_。(分数:2.00)A.3B.4C.5D.814.下列语句中,能使 str存放或指向字符串“abc“的是_。(分数:2.00)A.char str=“a“,“b“,“c“;B.char str4=“a“, “b“,
7、 “c“;C.char*str, *str=“abc“;D.char*str; scanf(“%s“, str);15.以下程序段的运行结果是_。 char*s=“123456“; s+=3; printf(“%s/n“, s);(分数:2.00)A.456B.123456C.4D.345616.以下程序段的运行结果是_。 char s17=“abcdef“, s24=“123“; strcpy(s1, s2); printf(“%s %c“, s1, s14);(分数:2.00)A.123B.123 eC.abcD.abc e17.执行以下程序,其运行结果是_。 #includestdio.
8、h #includestring.h int main() char*p1, *p2, str10=“ABCDEFG“; p1=“abcde“; p2=“12345“; strcpy(str+1, p1+2); strcpy(str+3, p2+3); printf(“%s“, str); return 0; (分数:2.00)A.Acd45B.cd45C.Acde123D.Acde45618.设有 char s112=“abcde“, s2=“1234“, *p; ,以下能正确实现字符串操作的语句是_。(分数:2.00)A.strcat(p, s1);B.strcat(p, s2);C.st
9、rcat(s1, s2);D.strcat(s2, s1);19.执行以下程序段,其运行结果是_。 #includestdio.h #includestring.h int main() char s120=“abcdef“, s2=“1234“; strcat(s1, s2); printf(“%d/n“, strlen(s1); return 0; (分数:2.00)A.4B.6C.10D.1120.执行以下程序,其运行结果是_。 #includestdio.h #includestring.h int main() char s120=“abcdef“, s2=“bbaxyz“, s32
10、0; if(strcmp(s1+1, s2)0) strcpy(s3, s1); else strcpy(s3, s2+1); printf(“%s/n“, s3); return 0; (分数:2.00)A.abcdefB.bbaxyzC.bcdefD.baxyz21.以下程序段的运行结果是_。 int a34=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; int*p3, i; for(i=0; i3; i+) pi=ai; printf(“%d, %d“, *(p1+1), *p2);(分数:2.00)A.6,9B.5,7C.6,6D.9,922.以下程序的
11、运行结果是_。 #includestdio.h #includestring.h int main() char*str5=“ENGLISH“, “MATH“, “MUSIC“, “CHEMISTRY“, “PHYSICS“, r20; char*q; int i; q=str; strcpy(r, *q); for(i=0; i4; i+) if(strcmp(r, *(+q)0) strcpy(r, *q); printf(“%s/n“, r); return 0; (分数:2.00)A.ENGLISHB.CHEMISTRYC.PHYSICSD.MATH23.下列关于函数定义的描述中,错误
12、的是_。(分数:2.00)A.定义函数时函数的存储类型可以省略B.定义函数时函数名和函数类型必须指明C.定义函数时必须有函数体D.定义函数时必需指明函数参数24.下列关于函数(原型)声明的描述中,错误的是_。(分数:2.00)A.函数声明可放在函数体内,也可放在函数体外B.函数声明既要给出函数名和类型,又要指出函数参数C.函数调用前必须给出被调函数的函数声明,否则出错D.被调函数的定义在主调函数前面时,可以不用函数声明25.以下正确的定义函数首部的形式是_。(分数:2.00)A.float func(int n; float x)B.float func(int n, float x);C.f
13、loat func(int n; float x);D.float func(int n, float x)26.下列关于函数参数的描述中,错误的是_。(分数:2.00)A.定义函数时可以有参数,也可以没有参数B.形参是变量名时,实参也只能是变量名,不可以是表达式C.函数的形参在该函数被调用前是没有确定值的D.要求函数的形参和对应的实参个数应相等,类型应赋值兼容27.下面说法中正确的是_。(分数:2.00)A.实参占用存储单元,形参不占用存储单元B.相对应的实参与形参共用同一存储单元C.相对应的实参与形参同名时,它们共用同一存储单元D.相对应的实参与形参占用不同的存储单元28.实参为简单变量时
14、,与其对应形参之间的数据传递方式为_。(分数:2.00)A.由用户另外指定传递方式B.双向数值传递C.单向数值传递D.地址传递29.实参是数组名,则传递给对应形参的是_。(分数:2.00)A.数组的地址B.数组的长度C.数组中每一个元素的地址D.数组中每一个元素的值30.下列关于函数返回值的论述中,错误的是_。(分数:2.00)A.函数返回值能够实现函数间的数据传递B.函数返回值是由 return表达式实现的C.函数返回的值和值的类型是由返回语句中表达式的值和类型决定的D.一个函数可有多条返回语句,但只可有一个返回值31.下列关于函数的论述中正确的是_。(分数:2.00)A.不允许函数嵌套定义
15、,但允许函数嵌套调用B.不允许函数嵌套调用,但允许函数嵌套定义C.函数的定义和调用都允许嵌套D.函数的定义和调用都不允许嵌套32.以下说法不正确的是_。(分数:2.00)A.所有的形式参数都是局部变量B.不同函数中允许说明并使用相同名字的变量C.函数内定义的变量其有效范围不超出该函数D.函数内的复合语句中说明的变量在该函数范围内有效33.在主调函数中有对函数 fun的调用语句: fun(a, b), (i, j, k); 那么 fun的形参个数是_。(分数:2.00)A.1B.2C.4D.534.在说明语句:int*func(int, int); 中,func 代表的是_。(分数:2.00)A
16、.一个用来指向整型数据的指针变量B.一个返回值为整型指针的函数名C.一个用来指向函数的指针变量D.一个用来指向一维数组的行指针变量35.设有函数 char*fun(char*p)return p;,则该函数的返回值是_。(分数:2.00)A.无确切的值B.形参 p中存放的地址值C.一个临时存储单元的地址D.形参 p自身的地址值36.以下程序的运行结果是_。 void swap28(int n0, int n1) int temp; temp=n0; n0=n1; n1=temp; void swap14(int n) int temp; temp=n0; n0=n1; n1=temp; int
17、 main() int a2=2, 8, b2=1, 4; swap28(a0, a1); swap14(b); printf(“%d %d %d %d/n“, a0, a1, b0, b1); return 0; (分数:2.00)A.2 8 1 4B.2 8 4 1C.8 2 4 1D.8 2 1 437.以下程序的运行结果是_。 #includestdio.h #includestring.h void space(char*str) int i, t; char ts81; for(i=0, t=0; stri!=“/0“; i+=1) if(*(str+i)!=“ “) tst=“/
18、0“; strcpy(str, ts); int main() char s81=“a b c d e f g“; space(s); puts(s); return 0; (分数:2.00)A.bcdefgB.abcefgC.BCDEFGD.ABCEFG38.以下程序的运行结果是_。 int fun(char*s) char*q=s; while(*q!=“/0“)q+; return(q-s); int main() char*p=“abc123“; printf(“%d/n“, fun(p); return 0; (分数:2.00)A.3B.6C.0D.abc12339.以下程序的运行结
19、果是_。 #includestdio.h void fun(int*p, int*q) printf(“%d%d“, *p, *q); *p=7; *q=8; int main() int x=55, y=66; fun( printf(“%d%d/n“, x, y); return 0; (分数:2.00)A.556678B.556687C.665578D.66558740.若下列函数 fun()被调用 3次后,n 的值为_。 void fun() static int n=1; +n; (分数:2.00)A.1B.3C.2D.441.以下程序的运行结果是_。 #includestdio.h
20、 int main() void fun(int); int i=5; fun(i); printf(“/n“); return 0; void fun(int n) if(n0)fun(n-1); printf(“%d“, n); (分数:2.00)A.543210B.012345C.54321D.1234542.下面程序运行时,若输入整数 30,则输出结果是_。 #includestdio.h int main() void func(int); int intnum; printf(“Please input a integer number:/n“); scanf(“%d“, func
21、(intnum); printf(“/n“); return 0; void func(int n) if(n/30)func(n/3-3); printf(“%d“, n); (分数:2.00)A.-1 7 30B.30 7 -1C.30 7D.-1二、填空题(总题数:8,分数:16.00)43.以下程序实现了数组元素按相反顺序进行存放。 #includestdio.h int main() int i, a10, temp; int* p, *low, *high; 1; for(i=0; i10; i+) scanf(“%d“, p+ 2); /*输入数组元素*/ for(i=0; i1
22、0; i+) printf(“%d“, *p); /*输出原数组元素*/ 3; printf(“/n“); for(low= lowhigh; 4) temp=*high; *high=*low; *low=temp; for(i=0; i10; i+) printf(“%d“, ai); /*输出变换后的数组元素*/ return 0; (分数:2.00)44.以下程序使用指向行数组的指针变量的方法,实现将二维数组 a43中的第 m行与第 n行元素的对调(m=4, n=4)。 #includestdio.h int main() int a43=1, 3, 5, 7, 9, 11, 13,
23、15, 17, 19, 21, 23; int i, j, 1; int m, n, temp; scanf(“%d%d“, p=a; for(i=0; i3; i+) temp=*(*(p+m-1)+i); *(*(p+m-1)+i)= 2; *(*(p+n-1)+i)=temp; for(i=0; i4; i+) for(j=0; j3; j+) printf(“%4d“, *(*p+j); 3; printf(“/n“); return 0; (分数:2.00)45.以下程序实现将十进制正整数转换为十六进制数,且十六进制数用字符串表示。 #includestdio.h #includes
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 福建省 二级 语言 答案 解析 DOC
