1、中国地质大学(北京)继续教育学院 2012 年 09 课程考试第 1 页(共 7 页) C 语言程序设计模拟题 一单项选择题(1) 变量的指针,其含义是指该变量的( B ) 。A值 B地址 C名 D一个标志(2) 设有变量定义 int a=2, b=4, c=6, d=8;则表达式 ab? a: cd? b: d 的值是( D ) 。A. 2 B. 4 C. 6 D.8(3) C 语言中用于结构化程序设计的三种基本结构是( A ) 。A 顺序结构、选择结构、循环结构 B if、switch、breakC for、while、do-whileD if、for、continue(4) 数组定义为“
2、int a45;“ , 引用“a1+3“ 表示( A ) 。A a 数组第 1 行第 3 列元素的地址 B a 数组第 1 行第 3 列元素的值 C a 数组第 4 行的首地址 D a 数组第 4 列的首地址(5) 设有变量定义 struct strint age;int num;std,*p=能正确引用结构变量 std 中成员age 的表达式是( D ) 。A. std-age B. * std-age C. *p.age D.(*p).age(6) C 语言中,函数的隐含存储类型是( A ) 。A. auto B. static C. extern D.register(7) 下面哪个表达
3、式的值为 4? ( D )A 11/3 B 11.0/3C (float)11/3 D (int)(11.0/3+0.5)(8) 设有变量定义 char * lang=“FOR”, “BAS”, “PAS”, “JAVA”, “C”;则表达式*lang1*lang3的值是( B ) 。A. 1 B. 0 C. 非零 D.负数(9) 在一个 C 语言程序中,说法正确的是( B )。A main 函数必须出现在所有函数之前B main 函数可以在任何地方出现C main 函数必须出现在所有函数之后D main 函数必须出现在固定位置(10) 下面哪个表达式的值为 4? ( D )A 11/3 B
4、11.0/3C (float)11/3 D (int)(11.0/3+0.5)(11) 设有变量定义 double b5, *p=b;则能正确表示 b 数组中元素地址的表达式是( A ) 。A. b+1 B. p+5 C. ,要使变量 a 和 b 的值分别为 2.97 和 3.46,正确的输入序列是( C ) 。中国地质大学(北京)继续教育学院 2012 年 09 课程考试第 2 页(共 7 页) A. 2.97 3.46 后跟回车 B. 2.97;3.46 后跟回车 C. 2.97,3.46 后跟回车 (14) 设有变量定义 int a= 1, 3, 5, 7, 9, 11, 13, x,
5、*p=a+2;在下列表达式中,能使变量 x 的值为 5 的表达式是( D ) 。A. x=*(p+1) B. x=* (-p) C. x=*(+p) D.x=*(p-) 二概念填空(1) 字符常量与字符串常量的区别是字符 常量用单引号,字符串常量用双引号 。(2) 表达式 x=x+1 表示成增 1 表达式为 X+ 。(3) C 程序的基本组成单位是 函数 , 一个 C 源程序可以由一个或多个函数组成 ,但必须有一个且只能有一个 main 函数 。(4) 若 x 为 int 型变量,则执行以下语句后 x 的值是 -14 。x=7;x+=x-=x+x;(5) 在 for 循环体内使用 contin
6、ue 语句的作用是 跳出该循环 。(6) 表述 “整型变量 x,y 和 z 至少有 2 个相等”的 C 语言表达式是 (x=y)|(y=z)|(x=z) 。(7) 写出 c 语言中任意三种基本数据的类型 字符型 整型 浮点型 (8) 执行循环结构中的 continue 语句能够立即执行下一次循环。执行循环结构或 switch结构中的 break 语句能够立即退出该结构。三程序填空(1) 下列程序求以下方程的全部整数解:3x+2y-7z=5 (0void main(void)int x, y, z;for (x=0; x=0 (C) z /= 7 (D) x!=0*void itob(int,
7、char *, int);void main(void)中国地质大学(北京)继续教育学院 2012 年 09 课程考试第 3 页(共 7 页) char str20;int n, base;printf(“Input the number and base:“);scanf(“%d%d“, itob(n, str, base);printf(“nThe number %d in base %d is %sn“, n, base, str);void reverse(char s)int c, i, j;for (i=0, j=strlen(s)-1; i10 (B) t=10 (C) n/=b
8、 (D) n/b0 (E) n%b0 (F) si=0 (G) si+=0(3) 下列函数检查表达式字符串的左右圆括号“(”和“) ”是否配对,若配对则函数返回 1,否则返回 0。int parenthbesis(char * exp)char * p;int i;(A) ;for ( (F) ; (H) ; p+)if (*p=() i+;elseif (*p=) 中国地质大学(北京)继续教育学院 2012 年 09 课程考试第 4 页(共 7 页) i -;if ( (D) ) return 0;if ( (B) ) return (1);else return (0);(A) i = 0
9、 (B) i = 0 (C) i0 (D) i=0 (F) p=exp (G) p=strlen(exp) (H) *p ( I) p != NULL (J ) p=NULL(4) 下列函数用二分法在已按字母次序从小到大排序后的字符数组 listlen中查找字符ch。若 ch 在数组中,则返回 ch 在数组中的下标,否则返回 -1。int search(char * list, char ch, int len)int low=0, high=len-1, k;while ( (B) ) k = (low+high)/2;if ( (C) ) return (k);else if ( (E)
10、) high = k-1;else low = k+1;return (-1);(A) high!=low (B) high=low (C) listk=ch (D) listk!=ch (E) listkch (F) listk=ch 四. 写出下列各程序运行时输出的结果(1) include int p(int);void main(void)printf(“%d %d %dn”, p(1), p(1), p(2);int p(int x)int z=1;static int y = 2; z +; y+;return (x+y+z);答:6, 7, 9(2). #include clas
11、s Apublic:中国地质大学(北京)继续教育学院 2012 年 09 课程考试第 5 页(共 7 页) A(int i);void print();const intprivate:const int a;statc const int b;const intA:b+10A:A(int i):a(i),r(a)void A:print()coutmain( )int i=1,j=3;printf(“%dn“,i+);int i=0;i+=j*2;printf(“%d,%dn“i,j);printf(“%d,%dn“,i,j);答:6,3 2,3五说明下列函数 pw 和 f 的功能(1) l
12、ong pw ( int x , int n) long p;for( p=1; n0; n-) p*=x; return (p);中国地质大学(北京)继续教育学院 2012 年 09 课程考试第 6 页(共 7 页) 答:求阶乘 x n(2) #include void f(int);void main(void)int x;scanf(“%d“, f(x);void f(int n)int i;if (nvoid main()int i=1,sum=0;while(i#include void squeeze(char *s, char c);void main(void)char str
13、ing20, c;中国地质大学(北京)继续教育学院 2012 年 09 课程考试第 7 页(共 7 页) printf(“Input a string:“);scanf(“%s“, string);getchar();printf(“Input a char to be deleted:“);scanf(“%c“, squeeze(string, c);printf(“New String: %s“, string);void squeeze(char *s, char c)int i, j, len;len = strlen(s);for (i=0; ivoid main(void)int a, b, c;for (a=1; a10; a+)for (b=0; b10; b+)for (c=0; c10; c+)if (a*a*a+b*b*b+c*c*c=a*100+b*10+c)printf(“%dn“, a*100+b*10+c);