[计算机类试卷]国家二级C语言机试(指针)模拟试卷4及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(指针)模拟试卷4及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(指针)模拟试卷4及答案与解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(指针)模拟试卷 4及答案与解析 一、选择题 1 有以下程序 #include int fun( char s ) char *p = s; while( *p != 0 ) p+; return ( p-s ); main() printf(“%dn“, fun(“0ABCDEF“) ); 程序运行后的输出结果是( )。 ( A) 7 ( B) 6 ( C) 1 ( D) 0 2 若有以下程序段 char str412= “aa“,“bbb“,“ccccc“,“d“ , *strp4; int i; for( i = 0; i #include void fun ( ch
2、ar *s ) char a10; strcpy( a, “STRING“ ); s = a; main() char *p=“PROGRAM“; fun( p ); printf(“%sn“,p); 程序运行后的输出结果是(此处 代表空格 ) ( )。 ( A) PROGRAM ( B) STRING ( C) STRING ( D) STRING 4 有以下程序 #include main() char c25=“6938“,“8254“ , *p2; int i, j, s=0; for( i=0; i0 ; j+=2 ) s=10*s+pij-0; printf(“%dn“,s); 程
3、序运行后的输出结果是( )。 ( A) 6385 ( B) 9824 ( C) 6982 ( D) 9284 5 下面选项中的程序段,没有编译错误的是( )。 ( A) char* sp, s10; sp = “Hello“; ( B) char* sp, s10; s = “Hello“; ( C) char str110 = “computer“, str210; str2 = str1; ( D) char mark; mark = “PROGRAM“; 6 以下叙述中正确的是( )。 ( A)字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组 ( B) char ca35 =
4、 “A“, “BB“, “CCC“; 是不合语法的 ( C) char ca 5 = “A“, “BB“, “CCC“; 是不合语法的 ( D) char *ca3 = “A“, “BB“, “CCC“; 是不合语法的 7 以下叙述中正确的是( )。 ( A)函数名代表该函数的入口地址 ( B)所有函数均不能接受函数名作为实参传入 ( C)函数体中的语句不能出现对自己的调用 ( D)如果函数带有参数,就不能调用自己 8 在 32位编译器上,设有定义 char *str1 = “Hello“, str2 = “Hello“; , 则以下语句 printf(“%d %d“, sizeof(str1
5、), sizeof(str2); 的输出结果是( )。 ( A) 4 6 ( B) 5 5 ( C) 6 6 ( D) 5 6 9 以下叙述中正确的是( )。 ( A)函数既可以直接调用自己,也可以间接调用自己 ( B)任何情况下都不能用函数名作为实参 ( C)函数的递归调用不需要额外开销,所以效率很高 ( D)简单递归不需要明确的结束递归的条件 10 设有定义语句: char *aa2= “abcd“,“ABCD“; 则以下叙述正确的是( )。 ( A) aa0存放了字符串 “abcd“的首地址 ( B) aa数组的两个元素只能存放含有 4个字符的一维数组的首地址 ( C) aa数组的值分别
6、是字符串 “abcd“和 “ABCD“ ( D) aa是指针变量,它指向含有两个元素的字符型数组 11 有以下程序 #include int fun( char *s ) char *p=s; while (*p !=0 ) p+; return ( p-s ); main() printf( “%dn“, fun( “goodbey!“ ) ); 程序的输出结果是( )。 ( A) 8 ( B) 6 ( C) 0 ( D) 7 12 有以下程序 #include main() char c25= “6934“, “8254“ ,*p2 ; int i, j, s=0; for( i=0; i
7、0 int k=0, a=0 ; while( s k +1 ) k+; if ( k % 2 =0 ) a = a + ( s k - 0 +1 ) ; continue; a = a + ( s k - 0 ); printf (“ k=%d a=%dn“, k, a ); 程序运行后的输出结 果是( )。 ( A) k=4 a=12 ( B) k=5 a=15 ( C) k=6 a=11 ( D) k=3 a=14 14 有以下程序(其中库函数 strstr()首部格式为: char *strstr(char *p1, char *p2) 其功能是确定 p2字符串是否在 p1中出现,并返
8、回 p2第一次出现的字符串首地址) #include #include char *a=“you“; char *b=“Welcome you to Beijing!“; main() char *p; p = strstr(b, a); printf(“%sn“, p); 程序的运行结果是( )。 ( A) you to Beijing! ( B) to Beijing! ( C) Welcome you to Beijing! ( D) Beijing! 15 有以下程序(其中的 strstr()函数头部格式为: char *strstr(char *p1, char *p2) 确定 p2
9、字符串是否在 p1中出现,并返回 p2第一次出现的字符串首地址) #include #include char *a=“you“; char *b=“Welcome you to Beijing!“; main() char *p; p = strstr(b, a) + strlen(a) + 1; printf(“%sn“, p); 程序的运行结果是( )。 ( A) to Beijing! ( B) you to Beijing! ( C) Welcome you to Beijing! ( D) Beijing! 16 有以下说明语句 char *s = “NameAddressn“;
10、指针 s所指字符串的长度是( )。 ( A) 14 ( B) 15 ( C) 17 ( D)说明语句不合法 17 有以下程序 #include main() char *s6 = “ABCD“, “EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“ , *p ; int i; p = s; for( i = 0; i #include main() char a = “THIS“, *b = “OK“; printf(“%d,%d,%d,%dn“, strlen(a), sizeof(a), strlen(b), sizeof(b); 程序运行后的输出结果是( )。 ( A)
11、4,5,2,4 ( B) 4,4,2,1 ( C) 5,5,3,3 ( D) 4,5,2,3 22 有如下程序 #include #include main() char name10 = “c-book“; char* str = name; printf(“%d,%d,%d,%dn“, sizeof(name), strlen(name), sizeof(str), strlen(str); 程序运行后的输出结果是( )。 ( A) 10,6,4,6 ( B) 11,6,11,6 ( C) 11,6,1,6 ( D) 10,7,1,7 23 有如下程序 #include int disp(
12、char* str) while (*str) putchar(*str+); return *str; main() printf(“%dn“, disp(“NAME“); 程序运行后的输出结果是( )。 ( A) NAME0 ( B) NAMEE ( C) NAME ( D) NAME0 24 有如下程序 #include main() char *p, old_str10 = “wind“; int password; scanf(“%d“, p = old_str; while (*p) printf(“%c“, *p + password); p+; printf(“n“); 程序运
13、行时,从键盘输入 2,输出结果是( )。 ( A) ykpf ( B) wind ( C) xjoe ( D) 2222 25 有如下程序 #include int sum(int* array, int len) if (len = 0) return array0; else return array0 + sum(array+1, len-1); main() int array5 = 1,2,3,4,5; int res = sum(array, 4); printf(“%dn“, res); 程序运行后的输出结果是( )。 ( A) 15 ( B) 10 ( C) 8 ( D) 1
14、26 以 下能正确进行字符串赋值的语句组是( )。 ( A) char *ch; ch=“abc“; ( B) char ch =a,b,c; ( C) char ch3=“abc“; ( D) char ch4; ch=“abc“; 27 有以下程序 #include int fun(char *s) char *p=s; while( *p+ != 0); return(p-s); main() char *p=“01234“; printf(“%dn“,fun(p); 程序的运行结果是( )。 ( A) 6 ( B) 5 ( C) 4 ( D) 3 28 有以下程序 #include m
15、ain() char s10=“verygood“, *ps=s; ps+=4; ps=“nice“; puts(s); 程序的运行结果是( )。 ( A) verygood ( B) verynice ( C) nicegood ( D) nice 29 有以下程序 #include int fun(char *s) char *p=s; while( *p != 0) p+; return(p-s); main() char *p=“01234“; printf(“%dn“,fun(p); 程序的运行结果是( )。 ( A) 5 ( B) 6 ( C) 4 ( D) 3 30 有以下程序
16、#include #include void fun(int *p1, int *s) int *t; t=(int *)malloc(2 * sizeof(int); *t=*p1 + *p1+; *(t+1)=*p1+ *p1; s=t; main() int a2=1,2,b2=0; fun(a,b); printf(“%d,%dn“,b0,b1); 程序运行后的输出结果是( )。 ( A) 0,0 ( B) 2,6 ( C) 2,4 ( D) 1,2 31 有以下程序 #include #include int fun(int n) int *p; p = (int*)malloc(s
17、izeof(int); *p=n; return *p; main() int a; a = fun(10); printf(“%dn“,a+fun(10); 程序的运行结果是( )。 ( A) 20 ( B) 10 ( C) 0 ( D)出错 32 有以下程序 #include main() char c25=“6938“,“8254“ , *p2; int i, j, s=0; for( i=0; i0 ; j+=2 ) s=10*s+pij-0; printf(“%dn“,s); 程序运行后的输出结果是( )。 ( A) 6385 ( B) 9824 ( C) 4528 ( D) 693
18、8 33 有以下程序 #include #include void fun( double *p1,double *p2,double *s) s = (double *)calloc( 1,sizeof(double) ); *s = *p1 + *( p2+1 ); main() double a2 = 1.1, 2.2 , b2 = 10.0, 20.0 , *s=a; fun( a, b, s ); printf( “%5.2fn“, *s); 程序的输出结果是( )。 ( A) 1.10 ( B) 11.10 ( C) 12.10 ( D) 21.10 34 有以下程序 #inclu
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 指针 模拟 答案 解析 DOC
