辽宁石油化工大学历年C语言期末模拟
本试卷为辽宁石油化工大学历年C语言期末模拟,题目包括:单项选择题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
本卷包括如下题型:
C语言期末模拟
一、单项选择题 (共50题,每题2分,共计100分)
( C )
1、有以下程序
#include <stdio.h>
int main()
{
int a = 1, b = 2, c = 3, d = 0;
if (a == 1 && b++ == 2)
if (b != 2 || c-- != 3)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
}
程序运行后的输出结果是________。
( B )
2、表达式:(int)((double)9/2)-(9)%2的值是________。
( D )
3、合法的c语言赋值语句是________。
( A )
4、c语言结构体类型变量在程序执行期间,________。
( A )
5、在c语言中对于实型数组,其每个数组元素的类型是________。
( A )
6、下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是________。
main()
{
char s1[]="chinese",s2[]="japanese";
int i;
for(i=0;s1[i]='\0'&&s2[i]!='\0';i++) if(s1[i]==s2[i]&&i<7) ________;
}
( B )
7、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
( D )
8、b等于( )
( D )
9、以下正确的字符串常量是________。
( B )
10、若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b;
c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是________。
( C )
11、以下关于数组的描述正确的是______。
( B )
12、下面对的叙述中不正确的是______。
( C )
13、在定义 int a[5][6]; 后,数组 a 中的第 10 个元素是__________ (设 a[0][0] 为第一个元素)
( A )
14、若主调用函数类型为 double ,被调用函数定义中没有进行函数类型说明,而 return 语句中的表达式类型为 float 型,则被调函数返回值的类型是 __________ 。
( C )
15、若在某函数内部有定义:int a[3][4]; 则数组a中各元素________。
( C )
16、下列叙述中,正确的是________。
( B )
17、设int a=10,b= 11,c=12; 表达式( a + b) < c & &b==c的值是________。
( C )
18、设以下变量均为int类型,表达式的值不为7的是________。
( B )
19、若需要利用形参直接访问实参,则应把形参变量说明为( )参数。
( C )
20、程序中对fun函数有如下说明 void*fun(); 此说明的含义是________。
( D )
21、关于字符常量,以下叙述正确的是________。
( C )
22、在printf的格式字符中,e格式字符的作用是________。
( C )
23、下列说法不正确的是________。
( B )
24、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
( B )
25、有以下函数 int fun(char *s)
{
char *t=s;
while(*t++);
return(t-s);
}
该函数的功能是________。
( A )
26、switch语句不能用于下列哪种数据类型 ( )
( C )
27、有定义语句:int*p[4]; 以下选项中与此语句等价的是________。
( D )
28、在64位高档微机中,一个字长所占的二进制位数为________。
( D )
29、若有以下定义:int a[2][3]= { 2,4,6,8,10,12 } 则以下描述不正确的是 ______。
( B )
30、以下程序的运行结果是________。
#include <stdio.h>
#define MIN(x,y) (x)<(y) ? (x):(y)
main() {
int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
( A )
31、有以下程序:
main()
{
char a='a',b;
printf("%c,",++a);
printf('%c\n",b=a++);
}
程序运行后的输出结果是________。
( B )
32、有如下程序:
#include <stdio.h>
long fib(int n) {
if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{
printf("%d\n",fib(3));
}
该程序的输出结果是________。
( C )
33、以下程序的输出结果是______。
#include <stdio.h>
main ()
{
char *s = "121";
int k = 0, a = 0, b = 0;
do
{
k++;
if (k % 2 == 0)
{
a = a + s[k] - '\0';
continue;
}
b = b + s[k] - '\0';
a = a + s[k] - '\0';
}
while (s[k + 1]);
printf ("k=%d a=%d b=%d\n", k, a, b);
}
( A )
34、下面叙述正确的是________。
( D )
35、下列关于表达式的描述中,错误的是________。
( D )
36、下面程序的输出是______。
main( )
{
int x=3 ,y=6,a=0;
while(x++!=(y-=1) )
{
a+=1;
if (y<x) break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
( C )
37、若有以下程序段,w和k都是整型变量:w=k;
lb:if(w==0) goto le;
w--;
printf("*");
goto lb;
le: . . .则不能与上面程序段等价的循环语句是______。
( A )
38、若有定义 int a[]={10,20,30 },*p=a; ,当执行p++; 后,下列说法错误的是______。
( C )
39、以下二维数组c 的定义形式是________。
( D )
40、巳知字母a 的ascii 码是65,以下程序的执行结果是________。
main()
{
char c1='a',c2='y';
printf("%d,%d\n",c1,c2);
}
( A )
41、以下关于静态变量的说法正确的是________。
( B )
42、执行下列语句后,a和b的值分别为________。(注:a的accii码值为:97,a的accii码值为:65) int a,b; a=1+'a'; b=2+7%-4-'a';
( D )
43、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
( A )
44、while(fabs(t)<1e-5)if(!s/10)break; 循环结束的条件是________。
( C )
45、在c语言中,调用函数除函数名外,还必须有________。
( C )
46、enum a
{
sum=9,mon=-1,tue
}
;
定义了________。
( D )
47、static char str[10]="China";数组元素个数为()。
( A )
48、char *match(char c)是()。
( C )
49、以下描述中,正确的是()。
( C )
50、以下叙述中错误的是________。
相关标签:
- C语言
- 辽宁石油化工大学
- 期末模拟