《C语言程序设计》模拟题

更新时间:2023-09-08 19:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中国地质大学(北京)继续教育学院 2015年01课程考试

《C语言程序设计》模拟题

一、简答题

1、简述C语言程序的结构。

C程序结构: 头文件; 局部函数声明; 局部定义声明; 全局变量声明; 全局函数声明; 引用外部函数声明; C代码(C函数); 二、选择题

1、 下面程序段的输出结果是【1】。C int a=60; a+=a-=a+a;

printf(“%d\\n”,a); A) 120 B) 60 C) -120

D) -60

2、 下面正确的字符常量是【2】。C A) ‘c’ B) ‘//’’ C) “w”

D) ‘’ 3、 以下不能用作标识符的是【3】。C A) _26 B) Scanf C) case

D) Double 4、 下面程序段中循环体执行的次数是【4】。C int a=10, b=0;

do {b+=2; a-=2+b; } while(a>=0); A) 1 B) 2 C) 3 D) 4

5、 以下关于函数的叙述正确的是【5】。D A) 函数中必须要有return语句

B) 函数中可以有多个return语句,但只有一个被执行

第1页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

C) return语句中必须有一个表达式

D) 函数中定义的变量不能与其它函数中的变量同名

6、 满足x为奇数时值为真,x为偶数时值为假的表达式是【6】。C A) !(x%2==1) C) x%2

7、 以下语句中无法正确赋值的是【7】。B A) char b[10]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’}; B) char b[10]; b=“Hello!”;

C) char b[10]; strcpy(b, “Hello!”); D) char b[10]= “Hello!”;

8、 若有以下的定义和语句,则值为5的表达式是【8】。C int a[]={1,2,3,4,5,6,7,8,9,10}; A) a[5] C) a[a[3]]

B) a[a[4]] D) a[a[5]] B) x%2==0 D) !(x%2)

9、 若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是【9】。

B A) 2.750000 B) 2.500000 C) 3.500000 D) 0.000000

10、 已知ch是字符型变量,下面正确的赋值语句是【10】。C A) ch=”\\” C) ch=’\\xff’

B) ch=’123’ D) ch=’\\08’

11、 下面程序的运行结果是:【11】。D void main() {

char c=’a’;

if(‘0’<=c<=’9’) printf(“YES”); else printf(“NO”); }

第2页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

A) 语句有错误 B) NO C) YESNO D) YES

12、 已知:int a=4,b=5,c; 则执行表达式c=a=a>b后,变量a的值为【12】。A A) 0 C) 4

13、 以下程序的运行结果是【13】。C #include void main()

{ int x1=3,x2=1,x3=1;

if(x1=x2+x3) printf(“****”); else printf(“####”); }

A) 存在语法错误 C) 输出****

14、 下面程序段的输出结果是【14】。 #include

char p1[10]= “abc”, p2[]=“ABC”, str[50]= “xyz”; strcpy(str+2, strcat(p1,p2)); printf(“%s\\n”,str); A) xyabcABC C) yzabcABC

B) zabcABC D) xyzabcABC B) 无输出结果 D) 输出#### B) 1 D) 5

15、 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为【15】。B A) 1 C) 3

B) 2 D) 0

16、若已定义x和y为double类型,则表达式:x=1, y=x+3/2的值是【16】。C A) 1 C) 2.0

B) 2 D) 2.5

第3页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

17、 以下程序段的输出结果为【17】。B int x=1,y=2; void fun1() { x=3; y=4; } void fun2(int x,int y) { printf(“%d,%d\\n”,x,y); } void main()

{ fun1(); printf(“%d,%d,”,x,y); fun2(5,6); }

A) 3,4,5,6 C) 1,2,3,4

B) 1,2,5,6 D) 3,4,1,2

18、 下面程序执行时,while的循环次数是【18】。D int i=0; while(i<10) {

if(i<1) continue; if(i==5) break; i++; } A) 1 B) 10 C) 6

D) 死循环,不能确定次数

19、 对一维数组a的说明语句中正确的是【19】。C A) int a(10) C) #define SIZE 10

int a[SIZE];

B) int n=10;a[n]; D) int n;

scanf(“%d”,&n); int a[n];

20、 若调用一个函数,且此函数中没有return语句,则该函数【20】。AD 第4页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

A) 没有返回值

C) 能返回一个用户所希望的函数值 B) 返回若干个系统默认值 D) 返回一个不确定的值

21、下列运算符中优先级最高的是【21】。A A)! B)% C)-= D)&&

22、若int j=10;执行下列程序后,变量j的正确结果是【22】。D switch(j) { case 9: j+=1; case 10: j+=1; case 11: j+=1; default: j+=1;}

A) 10 B) 11 C) 12 D) 13 23、下列程序的运行结果是【23】。C int ii,x[3][3]={1,2,3,4,5,6,7,8,9}; for(ii=0;ii<3,ii++)

printf(“%d”,x[ii][2-ii]);

A)1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9 24、在定义int a[10];之后,对a的引用正确的是【24】。D A) a[10] B) a[6,3] C) a(6)

D) a[10-10]

25、在定义了a[2][3]之后,对a的引用正确的是【25】。C A)a(1,2) B) a[1,3] C) a[1>2][!1] D) a[2][0] 26、设有程序段

int k=10;

while (k=0) k=k-1;

则下面描述中正确的是:【26】C A)while循环执行10次 B)循环是无限循环

第5页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

C)循环体语句一次也不执行 D)循环体语句执行一次

27、判断两个字符串s1和s2相等的正确语句是【27】。D A) if(s1=s2) B) if(s1==s2)

C) if(strcpy(s1,s2)) D) if(strcmp(s1,s2)==0) 28、以下正确的字符常量的定义为【】。D A、’c’ B、“cj” C、 ’abc’

D、’’

29、若x、y都是int型变量,且x=100,y=200,则printf(“%d”,(x,y));的输出结果是【】。A A) 200 C) 100 200

B) 100 D) 不确定

30、运行以下程序,如果从键盘输入ABCDE<回车>,则输出结果是【】。

#include int funch (char str[]) {

int num=0;

while( str[num]!= ‘\\0’) num++; return (num); }

void main( ) { char str[10];

gets(str);

printf(“%d\\n”,funch(str)); } A) 7 C) 5

B) 6 D) 4

31、为表示关系x>=y>=z,下面C语言表达式中正确的是【】。C A) (x>=y)&&(y>=z) C) (x>=y>=z)

B) (x>=y)and(y>=z) D) (x>=y)&(y>=z)

第6页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

32、下面程序段的输出结果是【】。 B int x=2,y=0,z;

x*=3+2; printf(“%d ”,x); x*=y=z=4; printf(“%d”,x); A) 8 40 C) 10 4

33、下列程序段的输出结果为【】。C int a=9; a+=a-=a+a;

printf(“%d\\n”,a); A) 18 C) -18

B) 9 D) -9 B) 10 40 D) 8 4

34、设有整型变量a的值为5,使整型变量b的值不为2的表达式【】。C A) b=a/5 C) b=a%2

B) b=6-(--a)

D) b=(a-a--,a/2)

35、语句printf(“a\\bre\\’hi\\’y\\\\\\bou\\n”)的输出结果为【】。C A) a\\bre\\’hi\\’y\\\\\\bou C) re’hi’you

B) a\\bre\\’hi\\’y\\bou D) abre’hi’y\\bou

36、设a,b,c,d均是int型变量,为了使以下程序输出为:1234+123+12+1,正确的输入形式应当为【】。 D scanf(“M+=+-+”,&a,&b,&c,&d); printf(“M+=+-+”,a,b,c,d); A) 1234123121<回车>

C) 1234+1234+1234+1234<回车> 37、以下程序的输出结果是【】。 A void main() { int a=1,b=1; switch (a+b)

{ case 2 : printf(\ case 3 : printf(\

第7页(共23页)

B) 1234123412341234<回车> D) 1234+123+12+1<回车>

中国地质大学(北京)继续教育学院 2015年01课程考试

} }

A) *

** C) *

38、分析以下程序,以下程序【】。D void main() { int x=5,a=0,b=0;

if(x=a+b) printf(“****\\n”); else printf(“####\\n”); } A) 有语法错,不能通过编译 C) 输出****

B) 通过编译,但不能连接 D) 输出#### D) * ** B) **

39、假定所有变量均已正确说明,下列程序段运行后x的值是【】。

a=b=c=0;x=35; if(! a) x=-1; else if(b); if(c) x=3; else x=4; A) -1 C) 35

40、下面程序运行的结果是【】。B #include void main() { int i,j,x=0;

for(i=0;i<2;i++) {

x++;

B) 4 D) 3

for(j=0;j<=3;j++)

{

if(j%2) continue; x++; } x++;

第8页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

}

printf(“x=%d\\n”,x); } A) x=4 B) x=8 C) x=6

D) x=12

41、下面程序的运行结果是【】。C #include “stdio.h” void main() {

int i,j,a=0; for(i=0;i<2;i++) { for(j=0;j<4;j++)

{

if(j%2) break; a++; } a++; }

printf(“%d\\n”,a); } A) 4 B) 5 C) 6

D) 7 42、下面程序的运行结果是【】。A void main() {

char ch[7]={ “12ab56”}; int i,s=0;

for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2)

s=10*s+ch[i]-’0’;

printf(“%d\\n”,s); } A) 1 B) 1256 C) 12ab56

D) 7

43、下面程序的运行结果是【】。

第9页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

void main() {

char a[]=“morning”,t; int i,j=0;

for(i=1;i<7;i++)

if(a[j]

j=i;

t=a[j]; a[j]=a[7]; a[7]=a[j];

puts(a); } A) mogninr C) morning

44、以下正确的函数说明形式是【】。A A) double fun(int x,int y) C) double fun(int x,int y); 45、以下程序的输出结果是【】。B void fun(int a, int b, int c) {

a=456; b=567; c=678; }

B) double fun(int x;int y) D) double fun(int x,y); B) mo D) mornin

void main() {

int x=10, y=20, z=30; fun (x, y, z);

printf(\}

A) 30,20,10 C) 456,567,678

三、程序选择题

1、 下面程序是从键盘中输入学号,然后输出学号中百位数字为3的学号,输入0时结束循

环,请选择填空。 #include void main() { long int num;

第10页(共23页)

B) 10,20,30 D) 678,567,456

中国地质大学(北京)继续教育学院 2015年01课程考试

2.写一个函数,用于求n个学生的平均成绩:并设计主函数,定义一个一维数组score里面存放10个学生的成绩,输出这10位学生的平均成绩。

3.有一个3*4的矩阵,要求编写程序求出其中值最大的那个元素的值,以及所在的行号和列号。

#include usingnamespacestd; intmain(){ intmatrix[3][4]; intFindMax=0; inti,j;

cout<

cout<<\for(inti=0;i<3;i++) {

for(intj=0;j<4;j++) cin>>matrix[i][j]; }

for(inti=0;i<3;i++) {

for(intj=0;j<4;j++) {

cout<

cout<

for(i=0;i<3;i++) {

for(j=0;j<4;j++) {

第16页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

if(matrix[i][j]>FindMax) {

FindMax=matrix[i][j]; } } }

cout<

cout<<\}

#include

using namespace std; #include using namespace std; int main(){ int a[3][4]; int max = 0; int iIndex = 0; int jIndex = 0;

cout<<\请输入十二个元素\max=0;

for( int i=0;i<3;i++) {

for(int j=0;j<4;j++) {

cin>>a[i][j]; if(a[i][j]>max) {

max=a[i][j]; iIndex = i; jIndex = j; } } }

cout<

第17页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

4.写一个函数,求10个学生的平均成绩:并设计主函数,定义一个一维数组score里面存放10个学生的成绩,输出这10位学生的平均成绩。 5.求Fibonacci数列的前40个数。1,1,2,3,5,8,13?。

参考答案:

一、简答题

1、1)一个程序由一个或多个源程序文件组成。 预处理指令、全局声明、函数定义。 2)函数是C程序的主要组成部分。 3)一个函数包括两个部分:

函数首部和函数体(声明部分和执行部分)。 4)程序总是从main函数开始执行的。

5)程序中对计算机的操作是由函数中的C语句完成的。 6)在每个数据声明和语句的最后必须有一个分号。 7)C语言本身不提供输入输出语句。 8)程序应当包含注释。

二、选择题(本大题共35小题,每小题1分,共35分)。对每一个【 】,从A)、B)、C)、D)四个供选择的答案中,选出一个正确的答案。

1 C 11 D 21 A 2 A 12 A 22 D 3 C 13 C 23 C 4 C 14 A 24 D 5 B 15 B 25 C 6 C 16 C 26 C 7 B 17 A 27 D 8 C 18 D 28 A 9 B 19 C 29 A 10 C 20 D 30 C 第18页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

31 A 41 A 32 B 42 A 33 C 43 B 34 C 44 C 35 C 45 B 36 D 37 A 38 D 39 B 40 B

三、程序选择题 1 D 2 B 3 C 4 C 5 D 6 B 7 C 8 B 9 A 10 B 四、填空题 1 4 7 10 13 m=1b 16 i<=100 19 'D' 四、阅读程序题 1、21

int i,j,k,n 3*5*i+3*3*j+k k main()函数 2 5 8 11 i++ 10 i

#include int main() { void sort(int array[],int n); int a[10],i; printf(\ for(i=0;i<10;i++) scanf(\ sort(a,10); printf(\ for(i=0;i<10;i++) printf(\ printf(\ return 0; }

//调用Sort函数,a为数组名,大小为10

第19页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

void sort(int array[],int n) { int i,j,k,t; for(i=0;i方法一: #include int main() { float average(float array[10]); float score[10],aver; int i; printf(\ for(i=0;i<10;i++) scanf(\ printf(\ aver=average(score); printf(\ return 0; }

float average(float array[10]) { int i; float aver,sum=array[0]; for(i=1;i<10;i++) sum=sum+array[i]; aver=sum/10; return(aver); }

方法二:

#include int main() {

//函数声明

//调用average函数

//定义average函数

//累加学生成绩

第20页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

float average(float array[],int n); float score[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5}; //定义长度为10的数组 printf(\用数组名score和10作实参 return 0; }

float average(float array[],int n) //定义average函数,未指定形参数组长度 { int i; float aver,sum=array[0]; for(i=1;i

3. 题

#include int main() { int i,j,row=0,colum=0,max; int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; //定义数组并赋初值 max=a[0][0]; //先认为a[0][0]最大 for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) //如果某元素大于max,就取代max的原值 { max=a[i][j]; row=i; //记下此元素的行号 colum=j; //记下此元素的列好 } printf(\ return 0; }

4. 题

方法一:

#include int main() { float average(float array[10]); //函数声明 float score[10],aver; int i; printf(\

第21页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

for(i=0;i<10;i++) scanf(\ printf(\ aver=average(score); //调用average函数 printf(\ return 0; }

float average(float array[10]) //定义average函数 { int i; float aver,sum=array[0]; for(i=1;i<10;i++) sum=sum+array[i]; //累加学生成绩 aver=sum/10; return(aver); }

方法二:

#include int main() { float average(float array[],int n); float score[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5}; //定义长度为10的数组 printf(\average of class B is %6.2f\\n\//用数组名score和10作实参 return 0; }

float average(float array[],int n) //定义average函数,未指定形参数组长度 { int i; float aver,sum=array[0]; for(i=1;i

#include int main()

第22页(共23页)

中国地质大学(北京)继续教育学院 2015年01课程考试

{ int f1=1,f2=1,f3; int i;

printf(\ for(i=1;i<=38;i++) { f3=f1+f2; printf(\ f1=f2; f2=f3; }

return 0;

}

第23页(共23页)

本文来源:https://www.bwwdw.com/article/d8sh.html

Top