1、中国地质大学(北京)继续教育学院 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
2、 )。 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 )
3、 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 * l
4、ang[]={“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.
5、 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);,要使
6、变量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) 字符常量与字符串常量的区别是字符 常量用单引号,字符串常量用
7、双引号 。 (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
8、) 执行循环结构中的 continue 语句能够立即执行下一次循环。执行循环结构或switch结构中的 break 语句能够立即退出该结构。
三.程序填空
(1) 下列程序求以下方程的全部整数解:3x+2y-7z=5 (0<=x,y,z<=100)
#include
9、 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
10、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 11、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 12、 (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 ( 13、 (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 se 14、arch(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 15、) list[k] 16、 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< 17、include 18、>
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 19、i<=100)
{sum+=i*i;i+=2;}
cout<<"sum="< 20、);
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 21、) 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






