收藏 分销(赏)

C语言程序设计模拟题.doc

上传人:xrp****65 文档编号:7048343 上传时间:2024-12-25 格式:DOC 页数:7 大小:68.50KB 下载积分:10 金币
下载 相关 举报
C语言程序设计模拟题.doc_第1页
第1页 / 共7页
C语言程序设计模拟题.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
中国地质大学(北京)继续教育学院 2012年09课程考试 《C语言程序设计》模拟题 一.单项选择题 (1) 变量的指针,其含义是指该变量的( B )。 A.值 B.地址 C.名 D.一个标志 (2) 设有变量定义int a=2, b=4, c=6, d=8;则表达式a>b? a: c>d? b: d的值是( D )。 A. 2 B. 4 C. 6 D.8 (3) C语言中用于结构化程序设计的三种基本结构是( A )。 A. 顺序结构、选择结构、循环结构 B. if、switch、break C. for、while、do-while D. if、for、continue (4) 数组定义为"int a[4][5];", 引用"a[1]+3"表示( A )。 A. a数组第1行第3列元素的地址 B. a数组第1行第3列元素的值 C. a数组第4行的首地址 D. a数组第4列的首地址 (5) 设有变量定义struct str{int age;int num;}std,*p=&std;能正确引用结构变量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) 下面哪个表达式的值为4? ( D ) A. 11/3 B. 11.0/3 C. (float)11/3 D. (int)(11.0/3+0.5) (8) 设有变量定义char * lang[]={“FOR”, “BAS”, “PAS”, “JAVA”, “C”};则表达式*lang[1]>*lang[3]的值是( 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. 11.0/3 C. (float)11/3 D. (int)(11.0/3+0.5) (11) 设有变量定义double b[5], *p=b;则能正确表示b数组中元素地址的表达式是( A )。 A. b+1 B. p+5 C. &b[5] D. &b (12) 对基类和派生类的关系中错误的是( B )。 A.派生类是基类的具体化 B.派生类是基类定义的子集 C.派生类是基类的子集 D.派生类是对基类的改造 (13) 执行语句scanf(“%f,%f”, &a, &b);,要使变量a和b的值分别为2.97和3.46,正确的输入序列是( C )。 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, *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循环体内使用continue语句的作用是 跳出该循环 。 (6) 表述“整型变量x,y和z至少有2个相等”的C语言表达式是 ((x==y)||((y==z)||(x==z)) 。 (7) 写出c语言中任意三种基本数据的类型 字符型 整型 浮点型 (8) 执行循环结构中的 continue 语句能够立即执行下一次循环。执行循环结构或switch结构中的 break 语句能够立即退出该结构。 三.程序填空 (1) 下列程序求以下方程的全部整数解:3x+2y-7z=5 (0<=x,y,z<=100) #include <STDIO.H> void main(void) { int x, y, z; for (x=0; x<=100; x++) for (y=0; y<=100; y++) { if ((z=3*x+2*y-5)%7) continue;  (C) ; if (  (E)   ) printf("x=%d, y=%d, z=%d\n", x, y, z); } } (A) z %= 7       (B) z>=0     (C) z /= 7     (D) x!=0&&y!=0&&z!=0 (E) z>=0 && z<=100 (2) 下列程序完成10进制整数到任意进制数的转换。其中,函数itob(n,s,b) 将整数n 转换成b进制数并存放在字符串s中。如itob(n,s,16) 格式,将数n 转换成16进制数并存放在s中。 #include <STDIO.H> #include <STRING.H> void reverse(char *);* void itob(int, char *, int); void main(void) { char str[20]; int n, base; printf("Input the number and base:"); scanf("%d%d", &n, &base); itob(n, str, base); printf("\nThe number %d in base %d is %s\n", n, base, str); } void reverse(char s[]) { int c, i, j; for (i=0, j=strlen(s)-1; i<j; i++, j--) { c = s[i]; s[i] = s[j]; s[j] = c; } } void itob(int n, char s[], int b) { int i=0, sign, t; if ((sign=n)<0) n = -n; do { t = n%b; if (   (B)   ) s[i++] = t + 'A' - 10; else s[i++] = n%b + '0'; } while (   (C)   ); if (sign<0) s[i++] = '-';   (F)  ; reverse(s); } (A) t>10 (B) t>=10 (C) n/=b (D) n/b>0 (E) n%b>0 (F) s[i]=’\0’ (G) s[i++]=’\0’ (3) 下列函数检查表达式字符串的左右圆括号“(”和“)”是否配对,若配对则函数返回1,否则返回0。 int parenthbesis(char * exp) { char * p; int i;   (A)  ; for (   (F)  ;   (H)  ; p++) if (*p=='(') i++; else if (*p==')') { i --; if (   (D)   ) return 0; } if (   (B) ) return (1); else return (0); } (A) i = 0      (B) i == 0      (C) i>0          (D) i<0 (E) i>=0 (F) p=exp     (G) p=strlen(exp)   (H) *p ( I) p != NULL    (J ) p==NULL (4) 下列函数用二分法在已按字母次序从小到大排序后的字符数组list[len]中查找字符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) ) high = k-1; else low = k+1; } return (-1); } (A) high!=low      (B) high>=low     (C) list[k]==ch   (D) list[k]!=ch (E) list[k]>ch      (F) list[k]<ch    (G) list[k]>=ch 四. 写出下列各程序运行时输出的结果 (1) include <STDIO.H> int p(int); void main(void) { printf(“%d %d %d\n”, 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 <iostream.h> class A { public: A(int i); void print(); const int&r; private: const int a; statc const int b; } const intA::b+10 A::A(int i):a(i),r(a) { }void A::print() { cout<<a<<":"<<b<<":"<<r<<endl; } void main () { A a1(100),a2(0); a1.print() a2.print(); } 答: 100:10:100 0:10:0 (3).#include <stdio.h> main( ) {int i=1,j=3; printf("%d\n",i++); {int i=0; i+=j*2; printf("%d,%d\n"i,j); } printf("%d,%d\n",i,j); } 答: 6,3 2,3 五.说明下列函数pw和f的功能 (1) long pw ( int x , int n) { long p; for( p=1; n>0; n--) p*=x; return (p); } 答:求阶乘x n (2) #include <STDIO.H> void f(int); void main(void) { int x; scanf("%d", &x); f(x); } void f(int n) { int i; if (n<0) { putchar('-'); n *= -1; } if (i=n/10) f(i); putchar(n%10+'0'); } 答:将整数n转换成字符串 六.程序设计 (1) 用循环编程,求自然数1至100之间各奇数平方和并输出。 答:#include<iostream.h> void main() {int i=1,sum=0; while(i<=100) {sum+=i*i;i+=2;} cout<<"sum="<<sum<<endl; } (2) 编写一个在字符串s中删除所有c字符的函数squeeze(s,c),由主函数main输入字符串s和字符c,调用函数squeeze(s,c),最后输出删除了所有c字符的新字符串。 答: #include <STDIO.H> #include <STRING.H> void squeeze(char *s, char c); void main(void) { char string[20], c; printf("Input a string:"); scanf("%s", string); getchar(); printf("Input a char to be deleted:"); scanf("%c", &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; i<len; i++) if (s[i]==c) { len --; for (j=i; j<=len; j++) s[j] = s[j+1]; } } (3) 求100~999中的水仙花数(若3位数abc,a³+ b³+ c³=a*100+b*10+c,则称abc为水仙花数。例如:153,1³+ 5³+ 3³=1*100+5*10+3,则153为水仙花数)。 答: include <STDIO.H> void main(void) { int a, b, c; for (a=1; a<10; a++) for (b=0; b<10; b++) for (c=0; c<10; c++) if (a*a*a+b*b*b+c*c*c==a*100+b*10+c) printf("%d\n", a*100+b*10+c); } 第7页(共7页)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服