北京石油化工学院C语言精选样卷
本试卷为北京石油化工学院C语言精选样卷,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言精选样卷
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、以下叙述中正确的是________。
( D )
2、三种基本结构中,能简化大量程序代码的是________。
( C )
3、有以下程序段: int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4)m++; printf("%d\n",m); 程序段的输出结果是________。
( C )
4、设有定义:"double x[10],*p=x; ",以下能给数组x下标为6的元素读人数据的正确语句是________。
( C )
5、以下叙述中不正确的是________。
( B )
6、有以下程序 #include <stdlib.h> struct node { int num; struct node *next; }; main( ) { struct node *p,*q,*r; int sum=0; p=(struct node *)malloc(sizeof(struct node)); q=(struct node *)malloc(sizeof(struct node)); r=(struct node *)malloc(sizeof(struct node)); p->num=1; q->num=2; r->num=3; p->next=q; q->next=r; r->next=null; sum+=q->next->num; sum+=p->num; printf("%d\n",sum); } 执行后的输出结果是________。
( C )
7、若有以下说明语句: struct date { int year; int month; int day; } brithday; 则下面的叙述不正确的是_____.
( B )
8、对于while、do…while循环结构,正确的说法是________。
( A )
9、假设有语句sizeof(double),则它是________。
( D )
10、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
( C )
11、下列关于变量作用域的描述中,不正确的是________。
( B )
12、设宏定义#define PI 3.1415926,用宏名PI替换的是________。
( B )
13、数值型数据包括( )两种。
( D )
14、设int f (int); 和int g(int); 是函数f和g的原形,以下将f作为语句调用的是______ 。
( B )
15、以下选项中与if(a==1)a++; else a=b; 语句功能不同的语句是________。
( D )
16、设x,y均为int型变量,且x=10,y=3,则printf("%d,%d\n",x-,-y); 语句的输出结果是______。
( B )
17、有如下程序段int *p,a=5,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为______。
( B )
18、定义file *fp; 则文件指针fp 指向的是________。
( D )
19、下列运算符中是c语言关系运算符的是________。
( C )
20、在以下定义中,标识符p________。 int (*p)[3];
二、填空题 (共10题,每题2分,共计20分)
1、程序的结果是: #include<stdio.h> void main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } x++; } printf("x=%d",x); }
2、在c语言中,假使x为字符变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"( )"。
3、下列程序段的运行结果是________。 main() { int i=1,s=0; for( ; ; ) { s=s+i ; i++; if(i>4) break ; } printf("%d\n",s); }
4、下列程序段的运行结果是_____。 #define sub(x , y) x-y main( ) { int a , b , s; A=5, b=6; S=sub(a,b); printf("s=%d\n" , s); }
5、写出下列程序的运行结果。 #include "stdio.h" main() { int a[]={1,2,3,-4,5}; int m,n,*p; p=&a[0]; m=*(p+1); n=*(p+4); printf("%d %d %d ",*p,m,n); }
6、在c语言中,可以用/*…*/对c程序中的任何部分作______。
7、int a,b;与a*=5-b;等价的赋值语句是________。
8、定义一个指针p,它指向一个有6个整型元素的一维数组,定义语句为 ______。
9、有如下函数头: int max(int i,int j),则此函数有______个参数。
10、C语言中的每条基本语句以______作为结束符,每条复合语句以}作为结束符。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:字符串排序。如下: 请输入3个字符串,每个字符串以回车结束!: b a t 排序后的结果为: a b t
2、说明一个枚举类型enummonth它的枚举元素为Jan、Feb、…、Dec。编写能显示上个月名称的函数last_month。例如,输入Jan时能显示Dec。再编写另一个函数printmon用于打印枚举变量的值枚举元素。最后编写主函数调用上述函数生成一张12个月份及其前一个月份的对照表,使用结构体实现
3、编写程序,求在10~1000之间所有能被4除余3,被7除余4,被9除余4的数之和。
相关标签:
- C语言
- 北京石油化工学院
- 精选样卷