[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷1及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷1及答案与解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(函数和数组)模拟试卷 1及答案与解析 一、选择题 1 有以下程序 (strcpy为字符串复制函数, strcat为字符串连接函数 ) #include #include main() char a10=“abc“, b10=“012“, c10=“xyz“; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是 ( A) bc2yz ( B) a2yz ( C) a12xyz ( D) 12yz 2 若有定义语句: char s10=“1234567 0 0“;则 strlen(s)的值是 ( A) 8 ( B) 7 ( C
2、) 9 ( D) 10 3 有以下程序,程序中库函数 islower(ch)用以判断 ch中的字母是否为小写字母 #include #include void fun(char*p) int i=0; while(pi) if(pi=&islower(pi-1)pi-1=pi-1-a+A; i+; main() char s1100=“ab cd EFG!“; fun(s1); printf(“ s n“, s1); 程序运行后的输出结果是 ( A) Ab Cd EFg! ( B) ab cd EFG! ( C) ab cd EFg! ( D) aB cD EFG! 4 下列选项中,能 够满足
3、 “只要字符串 s1等于字符串 s2,则执行 ST”要求的是 ( A) if(s1=s2)ST; ( B) if(strcpy(s1, s2)=1)ST; ( C) if(strcmp(s2, s1)=0)ST; ( D) if(s1-s2=0)ST; 5 以下关于 return语句的叙述中正确的是 ( A)一个自定义函数中必须有一条 return语句 ( B)一个自定义函数中可以根据不同情况设置多条 return语句 ( C)定义成 void类型的函数中可以有带返回值的 return语句 ( D)没有 return语句 的自定义函数在执行结束时不能返回到调用处 6 以下叙述中错误的是 ( A
4、)函数调用可以作为一个独立的语句存在 ( B)函数形参的值也可以传回给对应的实参 ( C)若函数有返回值,必须通过 return语句返回 ( D) C程序必须由一个或一个以上的函数组成 7 若有以下函数首剖 int fun(double x10, int*n)则下面针对此函数的函数声明语句中正确的是 ( A) int fun(double, int); ( B) int fun(double*x, int n); ( C) int fun(double*, int*); ( D) int fun(double x, int*n); 8 有以下程序 #include int fun(int x,
5、 int Y) if(x=y)retum(x); else return(x+y) 2); main() int a=4, b=5, c=6; printf(“ dhn“, fun(2*a, fun(b, c); 程序运行后的输出 结果是 ( A) 3 ( B) 6 ( C) 8 ( D) 12 9 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 ( A)形参只是形式上的存在,不占用具体存储单元 ( B)函数的形参和实参分别占用不同的存储单元 ( C)同名的实参和形参占同一存储单元 ( D)函数的实参和其对应的形参共占同一存储单元 10 若有以下程序 void f(int
6、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) 65 -4-3-2-1- ( C) 1-2-3-4-5-6 ( D) 1-2-3-4-5-6- 11 有以下程序 #include int fun(int a, int b) return a+b; main()( int x=6, y=7, z=8, r; r=fun(fun(x, y), Z-); printf(“ d n“, r); 程
7、序运行后的输出结果是 ( A) 15 ( B) 21 ( C) 20 ( D) 31 12 有以下程序 #include int f(int x) int y; if(x=0x=1)return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“ d n“, z); 程序的运行结果是 ( A) 9 ( B) 0 ( C) 6 ( D) 8 13 有以下程序 fun(int x) int p; if(x=0x=1)return(3); p=x-fun(x-2); return p; main() printf(“ d n“, fu
8、n(7); ) 执行后的输出 结果是 ( A) 3 ( B) 7 ( C) 0 ( D) 2 14 以下叙述中正确的是 ( A)对于变量而言, “定义 ”和 “说明 ”这两个词实际上是同一个意思 ( B)在复合语句中不能定义变量 ( C)全局变量的存储类别可以是静态类 ( D)函数的形式参数不属于局部变量 15 在一个 C源程序文件中所定义的全局变量,其作用域为 ( A)由具体定义位置和 extern说明来决定范围 ( B)所在程序的全部范围 ( C)所在函数的全部范围 ( D)所在文件的全部范围 16 有以下程序 #include func(int n) static int num=1;
9、num=num+n; prinff(“ d“, num); void main() func(3); func(4); printf(“ n“); 程序运行后的输出是 ( A) 4 5 ( B) 3 5 ( C) 4 8 ( D) 3 4 17 有以下程序 #include int fun() static int x=1; x*=2: return x; ) main() int i, s=1; for(i=1; i =3; i+) s*=fun(); pfintf(“ d n“, s); 程序运行后的输出结果是 ( A) 0 ( B) 10 ( C) 30 ( D) 64 18 有以下程序
10、 int fun(int x, int n) static int sum=0, i; for(i=0; i n; 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); ( A) 50 ( B) 45 ( C) 60 ( D) 55 19 有下列程序: int a=4; int f(int n) int t=0; static int a=5; if(n 2)int a=6; t+=a+; ) elseint a=7; t
11、+=a+; ) retum t+a+: main() int s=a, i=0; for(; i 2; i+)s+=f(i); printf(“ d n“, s); 程序运行后的输出结果是 ( A) 28 ( B) 24 ( C) 32 ( D) 36 20 有以下程序 #include void main() int a=2, 3, 5, 4), i; for(i=0; i 4; i+) switch(i 2) case 0: switch(ai 2) case 0: ai+; break; case 1: ai-; break; case 1: ai=0; for(i=0; i 4; i+
12、) printf(“ d“, ai); printf(“ n“); 程序运行后的输出结果是 ( A) 2 0 5 0 ( B) 3 3 4 4 ( C) 3 0 4 0 ( D) 0 3 0 4 21 下列选项中,能正确定义数组的语句是 ( A) int num; ( B) int N=2008; int numN; ( C) int num0 2008; ( D) #define N 2008 int numN; 22 有以下程序 #include main() int s12=1, 2, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3), c5=0, i; for(i=0; i
13、12; i+)csi+; for(i=1; i 5; i+)printf(“ d“, ci); prinff(” 11”); ( A) 4 3 3 2 ( B) 2 3 4 4 ( C) 1 2 3 4 ( D) 1 1 2 3 23 以下叙述中正确的是 ( A)一条语句只能定义一个数组 ( B)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 ( C)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 ( D)在引用数组元素时,下标表达式可以使用浮点数 24 有以下程序 #include main() int aft=10, 20, 30, 40, *p=a,
14、i; for(i=0; i =3; i+)ai=*p; p+; ) printf(“ d n“, a2); 程序运行后的输出结果是 ( A) 20 ( B) 30 ( C) 10 ( D) 40 25 若有以下程序 #include char宰 a=“you“, b=“welcome#you#to#China!“; main()int ij=0; char*p; for(i=0; bi!= 0; i+) if(*a=bi) p=&bi; for(j=0; aj!= 0; j+) if(aj!=*p)break; p+; ) if(aj= 0)break; printf(“ s n“, p);
15、) 则程序的输出结果是 ( A) #you#to#China! ( B) me#you#to#China! ( C) #China! ( D) #to#China! 26 有以下程序 #include main() int b33=0, 1, 2, 0, 1, 2, 0, 1, 2), i, i, t=1; for(i=0; i =i; j+) t+=bibi; printf(“ d n“, t); 程序运行后的输出结果是 ( A) 3 ( B) 1 ( C) 9 ( D) 4 27 有以下程序 #include stdio h int fun(int(*s)4, int n, int k)
16、int m, i; m=s0k; for(i=1; i n; i+)if(sik m)m=sik; return m: main() int a44=1, 2, 3, 4), 11, 12, 13, 14, 21, 22, 23, 24, 31,32, 33, 34); printf(“ d n“, fun(a, 4, 0); 程序的运行结果是 ( A) 31 ( B) 34 ( C) 4 ( D) 32 28 有下列程序: main() int a44: 1, 4, 3, 2), 8, 6, 5, 7), 3, 7, 2, 5), 4, 8, 6, 1),i,k, t; for(i=0; i
17、 3; i+) for(k=i+l; k int fun(char s) char*p=s; while(*p!=0) p+; return(p-s); ) main() printf(“ d n“, fun(“0ABCDEF“); ) 程序运行后的输出结果是 ( A) 6 ( B) 7 ( C) 1 ( D) 0 32 以下叙述中正确的是 ( A) char ca35=“A“, “BB“, “CCC“;是不合语法的 ( B)字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组 ( C) char ca5: “A“, ”BB”, “CCC“;是不合语法的 ( D) char*ca3=“
18、A“, “BB“, “CCC“;是不合语法的 33 以下叙述中正确的是 ( A)语句 char str10=“string!“;和 char str10=ttstring!”);并不等价 ( B)对于一维字符数组,不能使用字符串常量来赋初值 ( C)对于 字符串常量 “string!“,系统已自动在最后加入了 0字符,表示串结尾 ( D)在语句 char str=“string!“;中,数组 str的大小等于字符串的长度 34 以下选项中,没有编译错误的是 ( A) char str3=d, e, b, u, g, 0); ( B) char str15=“pass“, str26; str2
19、=str1; ( C) char name10; name=“china“; ( D) char str4; str4=“hello world“: 35 设有定义: char p=1, 2, 3, *q=p;以下不能计算出一个 char型数据所占字节数的表达式是 ( A) sizeof(p) ( B) sizeof(char) ( C) sizeof(*q) ( D) sizeof(p0) 36 以下不能将 S所指字符串正确复制到 t所指存储空间的是 ( A) for(i=0; ti=si; i+); ( B) while(*t=*s)t+; s+; ( C) for(i=0, d=0; t
20、i+: sj+; ); ( D) do*t+=*s+; while(*s); 37 有以下程序 #include void main() char s=“012xy“; int i, n=0; for(i=0; si!=0; i+) if(si =a&si =z)n+; printf(“ d n“, n); 程序运行后的输出结果 是 ( A) 0 ( B) 3 ( C) 5 ( D) 2 38 若要求从键盘读入含有空格字符的字符串,应使用函数 ( A) getc() ( B) gets() ( C) getchar() ( D) scanf() 国家二级 C语言机试(函数和数组)模拟试卷 1答
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 模拟 答案 解析 DOC
