北京石油化工学院2023年C语言程序设计
本试卷为北京石油化工学院2023年C语言程序设计,题目包括:单项选择题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
本卷包括如下题型:
C语言程序设计
一、单项选择题 (共50题,每题2分,共计100分)
( C )
1、以下叙述中正确的是________。
( A )
2、要求通过while循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是________。
( D )
3、下列说法正确的是________。
( C )
4、若有以下程序段,w和k都是整型变量:
w=k;
LB:if(w==0)
goto LE;
w--;
printf("*") goto LB;
LE;
则不能与上面程序段等价的循环语句是________。
( A )
5、若有定义"int a=-5,b=7;",则表达式a%=(b%2)运算后,a的值为________。
( D )
6、有以下程序,其中k的初值为八进制数:
main()
{
int k=011;
printf{"%d|n",k++} ;
}
程序运行后的输出结果是________。
( D )
7、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是________。
#define N 5
void fun(int x[N])
{
int m;
for(m=N-t;m>=O;m-)scanf("%d",________);
}
( C )
8、函数pi的功能是根据以下近似公式求π值: (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 请填空,完成求π的功能。
#include <math.h>
main( )
{
double s=0.0;
long int i,n;
scanf("%ld",&n);
for(i=1;i<=n;i++) s=s+________ ;
s=(sqrt(6*s));
printf("s=%e",s);
}
( A )
9、下列四组常数中,均是合法整型常量的一组是________。
( D )
10、阅读下面的程序
#include<stdio.h>
main()
{
char c1,c2;
c1=getchar();
c2=c1+3;
printf("%c,%d\n",c2,c2);
}
已知'a'的ascii的值为65,如果从键盘上输入 d<回车> 则程序的运行结果是________。
( B )
11、有以下程序
struct s
{
int x,y;
}
data[2]={ 10,100,20,200 };
main()
{
struct s *p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是________。
( B )
12、以下程序的输出结果是
#include <stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%10)==0) break;
else i--;
}
i+=11;
a+=i;
}
printh("%d\n",a);
}
( D )
13、若有说明 :char c[10]= { 'e','a','s','t','\0' };, 则下述说法中正确的是 __ __________.
( D )
14、以下函数返回a所指数组中最小的值所在的下标值:
fun(int *a,int n)
{
int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]) ______,
return(p);
}
在横线处应填入的是______。
( D )
15、在下面的函数声明中,存在着语法错误的是________。
( B )
16、c语言中错误的int类型常数是________。
( C )
17、在下列各项中,运算级别最低的为________。
( A )
18、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的c语言表达式是 ______ 。
( D )
19、下列定义变量的语句中错误的是________。
( B )
20、下列一维数组定义正确的是________。
( C )
21、下列语句中执行跳转功能的语句是________。
( A )
22、c程序的执行是从( )开始执行的
( B )
23、结构化程序设计方法的三种基本控制结构中不包括(. )。
( D )
24、________不属于程序的基本控制结构。
( A )
25、二维数组a[8][9]按行优先顺序存储,若数组元素a[2][3]的存储地址为1087,a[4][7]的存储地址为1153,则数组元素a[6][7]的存储地址为 ( )
( D )
26、包含哪种语句的函数不能声明为内联函数( )
( B )
27、下列关于串的叙述中,哪一条是正确的( )
( C )
28、下列程序的输出结果是________。
main( )
{
char a[10]={9,8,7,6,5,4,3,2,1,0},* p=a + 5;
printf("%d",*--p);
}
( A )
29、有以下程序:
#include <stdio.h>
#include <string.h>
main()
{
char str[][20]={"one*world", "one*dream]"}, *p=str[1];
printf("%d, ", strlen(p));
printf("%s\n", p);
}
程序运行后的输出结果是______。
( A )
30、有以下程序:
main()
{
int a=3,b=4,c=5,d=2;
if(a>b) if(b>c) printf("%d",d+++ 1);
else printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是 ______。
( D )
31、为了计算s=15!(15的阶乘),则s变量应定义为________。
( C )
32、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
( D )
33、二进制数010110101转换错误的为:
( B )
34、运行下面程序时,若从键盘输入5后回车,则程序的输出结果是________。
( B )
35、有以下程序
main( )
{
int c=5,x;
scanf("%d",&x);
switch(x+1)
{
case 6: c++;
case 8: ++c;
break;
default:c+=3;
}
printf("%d",c);
}
程序运行时,从键盘输入: 5<回车>,程序执行后的输出结果是________。
( C )
36、main(int argc, char *argv[])
{
while(--argc>0) printf("%s",argv[argc]);
printf("\n");
}
假定以上程序经编译和连接后生成可执行文件prog.exe,如果在此可执行文件所在目录的dos提示符下键入:prog abcdefghijkl↙,则输出结果为______。
( C )
37、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10
void arrin(int x[N])
{
int i=0;
while(i<N)scanf("%d",______);
}
在下划线处应填入的是______。
( B )
38、以下说法正确的是________。
( B )
39、下面选项中关于编译预处理的叙述正确的是________。
( A )
40、以下叙述中正确的是________。
( C )
41、下列关于指针变量的描述,不正确的是________。
( A )
42、两个指针变量不可以________。
( A )
43、下面不正确的字符串常量是________。
( B )
44、c语言源程序名的后缀是________。
( B )
45、下列关于函数之间数据传递的叙述正确的是________。
( A )
46、c语言的if语句嵌套时,if与else的配对关系是________。
( D )
47、在c语言中,一维数组的定义方式为:类型说明符 数组名____
( A )
48、定义如下变量和数组: int k,a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是________。for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
( C )
49、c 语言提供的基本数据类型关键字是________。
( D )
50、指针变量 p 进行自加运算(即 执行 p++;)后,地址偏移值为 1,则其数据类型为()。
相关标签:
- C语言
- 北京石油化工学院