北京石油化工学院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语言
- 北京石油化工学院
- 精选样卷