大连民族大学计算机C语言专升本样卷

本试卷为大连民族大学计算机C语言专升本样卷,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

计算机C语言专升本样卷

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

(  A  )
1、以下程序段给数组所有元素输入数据:
main()
{
int a[10],i=0;
while(i<10)scanf("%d",);
}
应在下划线处填入的是________。
A、a+(i++)
B、&a[i+1]
C、a+i
D、&a[++i]
(  C  )
2、若有定义:"int a=4,b=5; float x=3.4,y=2.1; ",则下列表达式的值为( )。
(float)(a+b)/2+(int)x%(int)y;
A、5.5
B、55
C、5.500000
D、55.00000
(  B  )
3、结构化程序所要求的基本结构不包括( )。
A、顺序结构
B、GOT0跳转
C、选择(分支)结构
D、重复(循环)结构
(  C  )
4、当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是________。
A、c=b=a;
B、(a=c)||(b=c);
C、(a=c)&&(b=c);
D、a=c=b;
(  A  )
5、当输入为"hello?"时,下面程序的执行结果是________。
main()
{
char c;
c=getchar();
while(c!='?')
{
putchar(e);
break;
}
}
A、Rvfsu
B、h
C、?
D、hello
(  C  )
6、在函数中默认存储类型说明符的变量应该是________存储类型。
A、内部静态
B、外部
C、自动
D、寄存器
(  D  )
7、阅读下面的程序
main()
{
int i,j;
scanf("%3d%2d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
如果从键盘上输入1234567<回车>,则程序的运行结果是________。
A、i=123,j=4567
B、i=1234,j=567
C、i=1,j=2
D、i=123,j=45
(  C  )
8、若有以下说明语句:
struct date
{
int year;
int month;
int day;
} brithday;
则下面的叙述不正确的是_____.
A、struct是声明结构体类型时用的关键字
B、struct date 是用户定义的结构体类型名
C、brithday是用户定义的结构体类型名
D、year,day 都是结构体成员名
(  A  )
9、若运行下面程序时 , 给变量 a 输入 15, 则输出结果是 ________.
#include <stdio.h>
void main( )
{
int a,b;
scanf("%d",&a);
b=a>15?a+10:a-10;
printf("%d\n",b) ;
}
A、5
B、25
C、15
D、10
(  B  )
10、以下能对二维数组a进行正确初始化的语句是________。
A、int a[2][]={{(1,0,1},{5,2,3}};
B、int a[][3]={{1,2,3},{ 4,5,6}};
C、int a[2][4]={{ 1,2,3},{ 4,5},{6}};
D、int a[][3]={{1,0,1},{},{1,1}};
(  B  )
11、对于while、do…while循环结构,正确的说法是________。
A、只是表达形式不同
B、do…while 结构中的语句至少执行一次
C、while 结构中的语句至少执行一次
D、条件成立时,它们有可能一次也不执行
(  B  )
12、下列c运算符中,优先级最高的是________。
A、+(双目)
B、*(单目)
C、<=
D、*=
(  B  )
13、若有定义语句:int x=12,y=8,z; 在其后执行语句z=0.9+x/y; 则z的值为___________。
A、1.9
B、1
C、2
D、2.4
(  B  )
14、c语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是________。
A、void
B、int
C、float
D、double
(  D  )
15、表达式x+1>x是________。
A、算术表达式
B、非法表达式
C、字符串表达式
D、关系表达式
(  A  )
16、c程序的执行是从( )开始执行的
A、main函数
B、程序的第一行
C、<iostream.h>
D、<stdio.h>
(  B  )
17、有如下定义: int a[5]= { 1,3,5,7,9 }, * p=a; 下列表达式中不能得到数值5的是________。
A、a[2]
B、a[3]
C、*(p+2)
D、*p+4
(  B  )
18、下列二维数组初始化语句中,正确且与语句int a[][3]= { 1,2,3,4,5 }等价的是________。
A、int a[2][]={{1,2,3},{4,5}};
B、int a[][3]={1,2,3,4,5,0};
C、int a[][3]={{1,0},{2,0},{3,0}};
D、int a[2][]={{1,2,3},{4,5,6}};
(  B  )
19、下列类型的数据不可以存储在可变型变量中的是________。
A、整型
B、字节型
C、单精度型
D、日期型
(  D  )
20、对两个数组a和b进行如下初始化: char a[]="abcdef"; char b[]= {'a','b','c','d','e','f' } 则以下叙述正确的是________。
A、数组a与数组b完全相同
B、数组a与数组b长度相同
C、数组a与数组b中都存放字符串
D、数组a比数组b长度长
(  A  )
21、下列选项中合法的数组定义是________。
A、int a[]="string";
B、int a[5]={
0,1,2,3,4,5};
C、char a="sting";
D、char a[]={
0,1,2,3,4}
(  B  )
22、有以下程序:
int f(int n)
{
if(n ==1) return 1;
else return f(n-1)+1;
}
main( )
{
int i,j=0;
for(i=1;i<3;i++) j+=f(i);
printf("%d\n",j);
}
程序运行后的输出结果是________。
A、4
B、3
C、2
D、1
(  D  )
23、若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是________。
A、++i;
B、n1=(n2/(n3=2));
C、k=i=j;
D、a=b+c=2;
(  B  )
24、若有以下定义和语句 union data
{
int i;
char c;
float f;
} x;
int y;
则以下语句正确的是________。
A、x=10.5;
B、x.C=101:
C、Y=x;
D、printf("%d\n",x);
(  D  )
25、有以下程序
#include <stdio.h>
main()
{
int i,j;
for(i=3;i>=-1;i-)
{
for(i=1;j<=2;j++) printf("%d",i+j);
printf("\n");
}
}
程序的运行结果是______。
A、234 345
B、432 543
C、23 34 45
D、45 34 23
(  A  )
26、在标准ascii码表中,若英文字母i的十进制码值是105,则小写字母f的十进制码值为______。
A、102
B、101
C、103
D、100
(  B  )
27、以下关系表达式中,其值为true的是________。
A、"XYZ">"XYz"
B、"VisualBasic"<>"visualbasie"
C、"the"="there"
D、"Integer"<"Int\
(  C  )
28、下列各数据中,( ) 最小。
A、11011011(二进制数)
B、76(十进制数)
C、37(八进制数)
D、2A8(十六进制数)
(  A  )
29、以数据块为单位对数据进行整体读写时如果ptr是指向内存中数据块的首地址,fp是文件指针,那么数据块中每个数据项的大小为________。
A、sizeof(*ptr)
B、*ptr
C、sizeof(ptr)
D、sizeof(*fp)
(  D  )
30、在16位编译器环境下,double类型占多少字节?
A、2
B、4
C、1
D、8
(  B  )
31、设有以下说明语句:
struct stu
{
int a;
float b;
}
suttype;
则下面叙述不正确的是________。
A、struct是结构体类型的关键字
B、struct stu是用户定义的结构体类型
C、suttype是用户定义的结构体类型名
D、a和b都是结构体成员
(  B  )
32、下面程序的输出是________。 typedef union
{
long x[2];
int y[4];
char z[8];
}
mytype;
mytype them;
void main()
{
printf("%d\n", sizeof(them));
}
A、32
B、16
C、8
D、24
(  B  )
33、下面程序
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  )
34、若有数组名作为函数调用的实参,传递给形参的是________。
A、数组的首地址
B、数组第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
(  D  )
35、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
A、scanf("%d",&(*p).age);
B、scanf("%c",&std[0].gender);
C、scanf("%c",&(p->gender));
D、scanf("%s",&std.name);
(  C  )
36、下列描述中,正确的是________。
A、每个C程序必须在开头使用预处理命令
B、预处理命令必须位于C程序的开头
C、在C语言中,预处理命令都以<开头
D、语言的预处理命令只能实现宏定义和条件编译的功能
(  B  )
37、下列程序段输出结果是________。
a=1;
b=10;
do
{
b-=a;
a++;
}
while(b--<0);
printf(""a,b=%d,%d"",a,b);
A、a,b=7,5
B、a,b=2,8
C、a,b=2,2
D、a,b=8,2
(  D  )
38、下面说法正确的是________。
A、文件指针指向文件当前正在处理的字节地址
B、文件指针变量中保存的是所指文件包含的字符数
C、文件指针变量中的值是个常量,不能修改
D、文件指针变量的类型是 FILE*
(  C  )
39、与数学式子3乘以x的n次方/(2x-1)对应的c语言表达式是______。
A、3*x^n/(2*x-1)
B、3*x**n/(2*x-1)
C、3*pow(x,n)*(1/(2*x-1))
D、3*pow(n,x)/(2*x-1)
(  A  )
40、以下叙述中错误的是________。
A、将函数内的局部变量说明为 static 存储类是为了限制其他编译单位的引用
B、一个变量作用域的开始位置完全取决于变量定义语句的位置
C、全局变量可以在函数以外的任何部位进行定义
D、局部变量的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用
(  B  )
41、c 语言源程序的扩展名为
A、obj
B、c
C、exe
D、cpp
(  C  )
42、以下叙述中正确的是________。
A、两个字符串可以用关系运算符进行大小比较
B、函数调用 strlen(s)会返回字符串 s 实际占用内存的大小(以字节为单位)
C、C 语言本身没有提供对字符串进行整体操作的运算符
D、当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和
(  B  )
43、假定所有变量均已正确定义,下列程序段运行后x的值是________。
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
A、14
B、4
C、15
D、3
(  D  )
44、若char a[10]; 已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是________。
A、gets(a);
B、scanf("%s",a);
C、for(i=0;i<10;i++)a[i]=getchar();
D、a=getchar();
(  D  )
45、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的 表达式是________。
A、x || y
B、x | y
C、x & y
D、x ^ y
(  A  )
46、已定义两个字符数组a,b,则以下正确的输入格式 是________。
A、scanf("%s%s", a, b);
B、get(a, b);
C、scanf("%s%s", &a, &b);
D、gets("a"),gets("b");
(  D  )
47、在宏定义#define PI 3.14159中,用宏名代替一个________。
A、常量
B、单精度数
C、双精度数
D、字符串
(  D  )
48、C语言函数的隐含存储类别是________.
A、extern
B、static
C、register
D、auto
(  B  )
49、C语言源程序名的后缀是
A、.exe
B、.c
C、.obj
D、.cp
(  A  )
50、main()
{int x=1,a=0,b=0;
switch (x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;}
printf("a=%d,b=%d",a,b);}
该程序的输出结果是( )
A、2,1
B、1,1
C、1,0
D、2,2