内蒙古科技大学往年C语言程序设计测试卷

本试卷为内蒙古科技大学往年C语言程序设计测试卷,题目包括:单项选择题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

本卷包括如下题型:

一、单项选择题

C语言程序设计测试卷

一、单项选择题 (共50题,每题2分,共计100分)

(  B  )
1、若i、j已定义成int型,则下列程序段中内循环体的总执行次数是________。
for(i=6;i>0;i--) for(j=0;j<4;j++)
{
…
}
A、20
B、24
C、25
D、30
(  B  )
2、下面程序的功能是输出以下形式的金字塔图案:
*
***
*****
main ()
{
int i, j;
for (i = 1; i < 4; i++)
{
for (j = 1; j <= 4 - i; j++)
printf (" ");
for (j = 1; j <= _______; j++)
printf ("*");
printf ("\n");
}
}
在下划线处应填入的是________。
A、i
B、2*i-1
C、2*i+1
D、i+2
(  A  )
3、下列函数的类型是________。 fun(double x)
{
float y;
y=3*x-4;
return y;
}
A、int
B、不确定
C、void
D、float
(  B  )
4、设有字符串a="he has 钱!",则该字符串的长度为( )。
A、9
B、10
C、11
D、8
(  A  )
5、有下列程序:
main()
{
int x=0;
int y=0;
while(x<7 &&++v)
{
y--;
x++;
}
printf("%d,%d",y,x);
}
程序的输出结果是________。
A、0,7
B、7,7
C、0,6
D、1,6
(  C  )
6、以下关于运算符优先顺序的描述中正确的是 。
A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B、逻辑与运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符<逻辑与运算符<关系运算符<算术运算符
D、算术运算符<关系运算符<赋值运算符<逻辑与运算符
(  B  )
7、以下变量声明中正确的是________。
A、int
B、_str
C、6xy
D、h7#
(  B  )
8、将八进制数307转换成二进制数是________。
A、100110011
B、11000111
C、1100000111
D、111000011
(  C  )
9、已定义以下函数 fun(int *p)
{
return *p;
}
该函数的返回值是________。
A、不确定的值
B、形参p中存放的值
C、形参p所指存储单元中的值
D、形参p的地址值
(  B  )
10、有以下程序
#include <stdio.h>
int fun(int x,int y)
{
if(x==y) return(x);
else return((x+y)/2);
}
main()
{
int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后输出的结果是________。
A、3
B、6
C、8
D、12
(  C  )
11、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
A、4
B、7
C、102
D、103
(  C  )
12、二进制数110101对应的十进制数是________。
A、44
B、65
C、53
D、74
(  A  )
13、在c语言中,变量的隐含存储类别是________。
A、auto
B、static
C、extern
D、无存储类别
(  D  )
14、下列选项不是c关键字的是________。
A、typedef
B、void
C、bool
D、inc
(  A  )
15、数组a[0…5,0…6]每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素a[5][5]的地址为________。
A、1175
B、1180
C、1205
D、1210
(  A  )
16、下列定义语句中,错误的是________。
A、int px*;
B、char*acp[10];
C、char(*paC) [10];
D、int(*p)( );
(  C  )
17、以下关于c语言数据类型的叙述中正确的是________。
A、C基本数据类型包括:分为整型、实型、浮点型、字符型四种
B、实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式
C、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D、若只处理“真”和“假”两种逻辑值,应使用逻辑类型
(  A  )
18、有如下语句: s=int(100*rnd) 执行完毕后,s的值是________。
A、[0,99]的随机整数
B、[0,100]的随机整数
C、[1,99]的随机整数
D、[1,100]的随机整数
(  C  )
19、计算机中的数有浮点和定点两种表示,浮点表示的数,通常由两部分组成,即________。
A、指数和基数
B、尾数和小数
C、阶码和尾数
D、整数和小数
(  D  )
20、要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是________。
A、int x[3]=0,0,0;
B、int x[]=0;
C、static int x[3]=0;
D、int x[]=
(  C  )
21、若一个外部变量的定义形式为static int x; 那么,其中static的作用应该是______。
A、将变量存储在静态存储区
B、使变量x可以由系统自动初始化
C、使x只能在本文件内引用
D、使x的值可以永久保留
(  C  )
22、以下正确的程序段是________。
A、char str1[ ]="12345",str2[ ]="abcdef";
B、char str[10],*st="abcde";strcat(str,st);
C、char str[10]=" "。*st="abcde";strcat(str,st);
D、char*st1="12345",*st2="abcde";strcat(st1,st2);
(  A  )
23、以下选项中合法的c语言字符常量是________。
A、'\t'
B、"A"
C、67
D、A
(  B  )
24、不能把字符串"hello!"赋给数组b的语句是______。
A、char b[10]='H','e','l','l','o','!';
B、char b[10]='h','e','l','l','o','!';
C、char b[10];strcpy(b,"Hello!");
D、char b[10]="Hello!":
(  A  )
25、若有定义语句: char*s1="ok",*s2="ok"; 以下选项中,能够输出"ok"的语句是______。
A、if(strcmp(s1,s2)=0)puts(s1);
B、if(strcmp(s1,s2)!=0)puts(s2);
C、if(strcmp(s1,s2)==1)puts(s1);
D、if(strcmp(s1,s2)==0)puts(s1);
(  B  )
26、下列变量定义中,错误的是______。
A、int x=3;
B、float f;d;
C、String s="Hello!";
D、boolean b=true;
(  B  )
27、有如下程序
main( )
{
int n=8;
while(n>6)
{
n--;
printf("%d",n);
}
}
该程序段的输出结果是______。
A、98
B、76
C、87
D、78
(  B  )
28、下面程序
main()
{
int y=9;
for(;y>0;y--)
{
if(y%3==0)
{
printf("%d",--y);
continue;
}
}
}
的输出是______。
A、741
B、852
C、963
D、875421
(  A  )
29、若有数组名作为函数调用的实参,传递给形参的是________。
A、数组的首地址
B、数组第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
(  A  )
30、以下叙述中错误的是________。
A、c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B、c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C、用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中
D、c语言源程序经编译后生成后缀为.obj的目标程序
(  D  )
31、为表示"a和b都不等于0",应使用的c语言表达式是________。
A、(a!=0) || (b!=0)
B、a || b
C、!(a=0)&&(b!=0)
D、a && b
(  D  )
32、下列字符中,错误的转义字符是________。
A、'\'
B、'\n'
C、'\''
D、'\091'
(  D  )
33、已定义以下函数int fun( int *p)
{
return *p;
}
则fun函数返回值足
A、不确定的值
B、一个整数
C、形参p中存放的值
D、形参p的地址值
(  A  )
34、算法指的是________。
A、解决问题的方法、步骤和思路的一种描述
B、计算机程序
C、排序方法
D、数据处理
(  D  )
35、以下叙述中正确的是________。
A、逻辑"或”(即运算符||)的运算级别比算术运算要高
B、C 语言的关系表达式:0<x<10 完全等价于:(0<x)&&(x<10)
C、逻辑"非”(即运算符!)的运算级别是最低的
D、由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象
(  B  )
36、下面的C程序完成的功能是________。
#define SIZE 5
void func(int data[SIZE]);
main()
{
int i,buf[SIZE];
printf(""Please input %d numbers:"",SIZE);
for(i=0;idata[j+1])
{
d=data[j];
data[j]=data[j+1];
data[j+1]=d;
}
}
A、对一维数组降序排序
B、对一维数组升序排序
C、对一维数组逆向排序
D、对一维数组顺序排序
(  C  )
37、若a为int类型,且其值为2,则执行完表达式a+=a-=a*a后,a的值是______。
A、0
B、4
C、-4
D、6
(  C  )
38、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
A、if(x++);
B、if(x>y && y!=0);
C、if(x>0) x--
D、if(y<0) {;}
(  C  )
39、下列程序段的输出结果为________。 int a=7,b=9,t; t=a*=a>b?a:b; printf("%d",t);
A、7
B、9
C、63
D、49
(  B  )
40、下列表达式中,可作为c合法表达式的是________。
A、[3,2,1,0]
B、(3,2,1,0)
C、3=2=1=0
D、3/2/1/0
(  D  )
41、以下选项中正确的 c 语言常量是________。
A、2.46E-1.5
B、0382
C、'123'
D、'\0'
(  C  )
42、判断关键字* ▁▁▁▁▁ 不是关键字。
A、int
B、extern
C、break
D、main
(  D  )
43、当定义一个结构体变量时,系统为它分配的内存空间是________。
A、结构中一个成员所需的内存容量
B、结构中第一个成员所需的内存容量
C、结构体中占内存容量最大者所需的容量
D、结构中各成员所需内存容量之和
(  A  )
44、以下不是无限循环的语句为________。
A、for(y=0,x=1;x>++y;x=i++) i=x;
B、for(;;x++=i);
C、while1){x++;}
D、for(i=10;;i--) sum+=i;
(  D  )
45、若二维数组a 有m 列,则计算任一元素a[i][j] 在数组中位臵的公式为(假设a[0][0] 位于数组的第一个位臵上) ________。
A、i*m+j
B、j*m+i
C、i*m+j-1
D、i*m+j+1
(  A  )
46、下面程序的功能是将字符串s 中所有的字符'c'删除。
#include "stdio.h"
main()
{
char s[80];
int i,j;
gets(s);
for (i=j=0;s[i]!='\0';i++)if (s[i]!='c') ;
s[j]='\0';
puts(s);
}
A、s[j++]=s[i]
B、s[++j]=s[i]
C、s[j]=s[i];j++
D、s[j]=s[i]
(  B  )
47、下面语句中( )是c 语言的正确赋值语句。
A、a=1,b=2
B、I++;
C、a=b=5
D、y=int(x);
(  C  )
48、以下叙述中正确的是____
A、C程序中的注释只能出现在程序的开始位臵和语句的后面
B、C程序书写格式严格,要求一行内只能写一个语句
C、C程序书写格式自由,一个语句可以写在多行上
D、用C语言编写的程序只能放在一个程序文件中
(  C  )
49、下面叙述中正确的是
A、对于用户自己定义的函数,在使用前必须加以声明
B、声明函数时必须明确其参数类型和返回类型
C、函数可以返回一个值,也可以什么值也不返回
D、空函数在不完成任何操作,所以在程序设计中没有用处
(  C  )
50、以下叙述中错误的是________。
A、C语言是一种结构化程序设计语言
B、结构化程序由顺序、分支、循环三种基本结构组成
C、使用三种基本结构构成的程序只能解决简单问题
D、结构化程序设计提倡模块化的设计方法