当前位置:文档之家› 中国石油大学《C语言程序设计》期末复习题及答案

中国石油大学《C语言程序设计》期末复习题及答案

A.union B.struct C.enum D.typedef
20. 应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为( )。
21.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式( )。
A.只能用逻辑表达式B.只能用关系表达式
C.只能用逻辑表达式或关系表达式
D.可用任意表达式
C.i=1;p=1;while(i<=5){p*=i; i++;}
D.i=1;p=1;do{p*=i; i++; }while(i<=5);
7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}};
A. 12 B. 3 C. 4 D.无确定值
8.设有如下程序段 ,则执行p=s;语句后,以下叙述正确的是( ) char s[20]=“Bejing”,*p;
{int n=0;
while ( (*x==*y)&&*x!='\0') {x++;y++;n++;}
return n;
}
A.将y所指字符串赋给x所指存储空间
B.查找x和y所指字符串中是否有'\0'
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
19.语言中,定义结构体的保留字是( )。
{
int j,k, x[4][4],y[4][4];
for(j=0;j<4;j++)
for(k=0;k<4;k++)
x[j][k]=j+k;
for(j=0;j<4;j++)
for(k=0;k<4;k++)
y[k][j]=x[j][k];
for(j=0;j<4;j++)
{for(k=0;k<4;k++)
p=s;
A.可以用*p表示s[0]
B.s数组中元素的个数和p所指字符串长度相等
C.s和p都是指针变量
D.数组s中的内容和指针变量p中的内容相等
9.以下正确的函数定义是
A.double sum(int x, int y)
int a=10;
printf("%d",++a);
B. 11,<空格>12<回车>
{int s;
if(n==1||n==0) s=5;
else s=n+fun(n-1);
return s;
}
void main()
{
printf("%ld\n", fun(3));
}
7.以下程序的输出结果是: ( )
printf("%d ",y[j][k]);
printf("\n");
}
}
4.以下程序的输出结果是: ( )
#include <stdio.h&j;
for(i=j=1;j<10;j++,i++)
{
if(j==5)
break;
if(i%2)
continue;
printf("i=%d,j=%d\n",i,j);
22.假设所有变量均为整型,表达式
:a=2,b=5,a>b?a++:b++,a+b
的值是(
)。
A.7
B.8
C.9
D.2
23.若有如下代码,则
a的值为(
)。
int a=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
k1=1;k2=2;k3=3;x=15;
if(!k1) x--;
else if(k2) x=4;
C
、选择题
1.能将高级语言编写的源程序转换成目标程序的是
A.链接程序
2.设a为整型变量,
A.10<a<15
C. a>10&&a<15
3.当调用函数时,实参是
A.数组的长度
C.数组每一个元素的地址
4.执行下面的程序段后,k的值是()
int k=1,n=325;
do{k*=n%10;n/=10;}while(n);
{int x=0,y=1,a=0,b=0;
switch(x)
{
case 0: switch(y)
{case 0: a++; case 1: b++;
}
case 1: switch(y)
{
case 0: a=a+5;
case 1: b=b+5;
}
}
printf(“a=%d,b=%d\n”,a,b);
}
17.以下不是无限循环的语句为( )。
A. for(y=0,x=1;x>++y;x=i++) i=x;
B.for(;;x++=i);
C.while(1){x++;}
D. for(i=10;;i--) sum+=i;
18.有以下函数,函数的功能是( )。
int fun(char *x,char *y)
else x=3;
25.以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);
30.若执行fopen函数时发生错误,则函数的返回值是(
A.地址值
B.0
C.1
D.EOF
二、读程序,写出程序的运行结果
1.以下程序的输出结果是()。
#include <stdio.h>
void main()
}
}
5.若有以下程序段,则输出结果是( )。#include <stdio.h>
void main()
{
char s2[]="\"c:\\abc.dat\"";
printf(“%s n”,s2);
}
6.以下程序的输出结果是: ( )#include <stdio.h> int fun( int n)
D. 11,<回车> 12<回车>
15.下列定义数组的语句中,正确的是(
A. int x[0..10];
C.#define N 10
int x[N];
16.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是( )。A. int p=&x;B.int *p=x;C. *p=*x; D. int *p=&x;
2.以下程序的输出结果是( )
#include <stdio.h>
void main()
{int x=-5,y=2,z=1;
if(x<y)
if(y<0) z=0;
else z=z+1; printf(“%d\n”,z);
}
3.以下程序的输出结果是: ( )
#include"stdio.h"
void main( )
A. 3B. 30 C. 523
5.若有以下数组说明,则i=6;a[a[i]]
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A.3 B.8 C.6 D.5
6.若变量已正确定义,要求程序段完成求
A.for(i=1,p=1;i<=5;i++) p*=i;
B.for(i=1;i<=5;i++){ p=1; p*=i;}
相关主题