嘉兴学院计算机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
(  C  )
2、有以下程序
typedef struct
{
char name[9];
char sex;
float score [2];
} stu;
stu f(stu a) {
stu b={"zhao", 'm', 85.0, 90.0};
int i;
strcpy(a.name, b.name);
a.sex=b.sex:;
for(i=0;i<2;i++) a.score[i]=b.score[i];
return a:
}
main() {
stu c=
{
"qian", 'f', 95.0, 92.0
};
stu d=f(c);
printf("%s, %c, %2.0f, %2.0f", d.name, d.sex, d.score[0], d.score[1]); ) 程序的运行结果是________。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,m,85,90
D、Zhao,f,95,92
(  C  )
3、#define能作简单的替代,用宏来替代计算多项式5*X*x 4-5*x+5的值的函数f,正确的宏定义语句为( )。
A、#define f(x) 5*x*x+5*X+5
B、#define f5*x*x+5*x+5
C、#define f(a) (5*a”a+5*a+5)
D、#define(5*x*x+5+x+5) f(x)
(  B  )
4、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
A、if(x>0)y=1;
B、if(x)
else if(x>0)y=1;
else y=0; else if(x%0)y=-1;
else y=0;
C、y=-1
D、y=0;
if(x) if(x>=0)
if(x>O)y=1; if(xi>=O)y=1;
else if(x==0)y=0; else y=-1;
else y=-1;
(  B  )
5、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是________.
A、float
B、int
C、long
D、double
(  D  )
6、下面哪一个不是字符常量________。
A、'a'
B、'?'
C、'9'
D、"a"
(  B  )
7、有以下程序
void f(char *s, char *t)
{
char k;
k=*s;
*s=*t;
*t=k;
s++;
t--;
if (*s) f(s, t);
}
main()
{
char str[10]="abcdefg", *p ;
p=str+strlen(str)/2+1;
f(p, p-2);
printf("%s\n",str);
}
程序运行后的输出结果是________。
A、abcdefg
B、gfedcba
C、gbcdefa
D、abedcfg
(  D  )
8、c 语言规定,函数返回值的类型是由 。
A、return 语句中的表达式类型所决定
B、调用该函数时的主调函数类型所决定
C、调用该函数时系统临时决定
D、在定义该函数时所指定的函数类型决定
(  A  )
9、若有以下的定义: int a[ ]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }, *p=a; 则值为 3 的表式是______。
A、p+=2 , * ( p++ )
B、p+=2 , *++p
C、p+=3 , *p++
D、p+=2 , ++*p
(  D  )
10、已知 short int 类型变量占用两个字节 , 若有定义 : short int x[10]={ 0,2,4 }; 则数组 x 在内存中所占字节数是 __________.
A、3
B、6
C、10
D、20
(  B  )
11、程序语言一般都提供多种循环语句,例如实现先判断循环条件再执行循环体的while语句和先执行循环体再判断循环条件的do-while语句。关于这两种循环结构,在不改变循环体的条件下, (17) 是正确的。
A、while语句的功能可由do-while语句实现
B、do-while语句的功能可由while语句实现
C、若已知循环体的次数,则只能使用while语句
D、循环条件相同时,do-while语句的执行效率更高
(  B  )
12、c语言中,int型数据在内存中的存储形式是________。
A、ASCⅡ码
B、补码
C、反码
D、原码
(  B  )
13、二维数组m[i,j]的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i范围从0到4,列下标,i的范围从0到5。m按行存储时元素m[3,5]的起始地址与m按列存储时元素( )的起始地址相同。
A、M[2,4)
B、M[3,4)
C、M[3,5]
D、M[4,4)
(  A  )
14、若有定义语句"int i=2, j=3; ",则表达式i/j的结果是________。
A、0
B、0.7
C、0.66667
D、0.66666667
(  C  )
15、排序的重要目的是为了以后对已排序的数据元素进行________。
A、打印输出
B、分类
C、查找
D、合并
(  B  )
16、结构化程序设计的3种结构是________。
A、顺序结构,分支结构,跳转结构
B、顺序结构,选择结构,循环结构
C、分支结构,选择结构,循环结构
D、分支结构,跳转结构,循环结构
(  A  )
17、下列描述中,符合结构化程序设计风格的是________。
A、使用顺序、选择和重复(循环) 三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的存储效率
D、使用goto语句跳转
(  D  )
18、在下面的字符数组定义中,哪一个有语法错误 。
A、char a[20]=“abcdefg”;
B、char a[]=“x+y=55.”;
C、chara[15];
D、char a[10]=‘5’;
(  C  )
19、下列哪个语句是声明一个含有10个string对象的数组 ( )
A、char str[];
B、char str[][];
C、String str[]=new String[10];
D、String str[10];
(  C  )
20、以下定义数组中错误的是________。
A、int a [10];
B、int a [2][20];
C、int a[20][ ];
D、int a[];
(  C  )
21、以下选项中正确的定义语句是______。
A、double a;b;
B、doubla=b=7;
C、double a=7,b=7;
D、double,a,b;
(  B  )
22、下面函数的功能是________。 a(s1,s2) char s1[],s2[]; while(s2++=s1++);
A、字符串比较
B、字符串复制
C、字符串链接
D、字符串反向
(  C  )
23、以下正确的程序段是________。
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);
(  B  )
24、x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是________。
A、INPUT x、v、z;
B、scanf("%d%d%d",&x,&y,&z);
C、scanf("%d%d%d",x,y,z);
D、read("%d%d%d",&x,&y,&z);
(  A  )
25、以下程序的运行结果是________。
#include <stdio.h>
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5,*q=null;
*q=8(p+5);
printf("%d %d\n", *p,*q);
}
A、运行后报错
B、6 6
C、6 11
D、5 5
(  A  )
26、设有定义:char*c; 以下选项中能够使字符型指针c正确指向一个字符串的是________。
A、charstr[]="string";c=str;
B、scanf("%s",c);
C、c=getchar();
D、char str[]="string";strcpy("C,str")
(  A  )
27、若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是________。 w=2,x=3,y=4,z=5;
m=(w<x) ? w:x;
m=(m<z) ? m:z;
m=(m<y) ? m:y;
A、2
B、3
C、5
D、4
(  C  )
28、以下程序运行后的输出结果是
#include<stdio.h>
main()
{
file *fp;
char str[10];
fp=fopen("myfile.dat", "w");
fputs("abc", fp);
fclose(fp);
fp=fopen("myfile.data", "a++");
fprintf(fp, "%d", 28);
rewind(fp);
fscanf(fp, "%s", str);
puts(str);
fclose(fp);
}
A、abc
B、28c
C、abc28
D、因类型不一致而出错
(  A  )
29、以下关于c/c语言指针变量的叙述中,正确的是________。
A、指针变量可以是全局变量也可以是局部变量
B、必须为指针变量与指针所指向的变量分配相同大小的存储空间
C、对指针变量进行算术运算是没有意义的
D、指针变量必须由动态产生的数据对象来赋值
(  D  )
30、在c语言程序中,注释部分从哪开始,到哪结束?()
A、从"("开始到")"结束
B、从REM开始无结束标志
C、无起始标志
D、从"/*"开始,"*/"结束
(  D  )
31、以下程序的输出结果是______。
struct har
{
int x,y;
struct har *p;
}
h[2];
main()
{
h[0].x=1;
h[0].y=2;
h[1].x=3;
h[1].y=4;
h[0].p=&h[1];
h[1].p=h;
printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);
}
A、12
B、23
C、14
D、32
(  D  )
32、以下程序的输出结果是______。
main()
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10) break;
if(b%3==1)
{
b+=3;
continue;
}
}
printf("%d\n",a);
}
A、101
B、6
C、5
D、4
(  D  )
33、以下关于c语言标识符的描述中,正确的是________。
A、标识符可以由汉字组成
B、标识符只能以字母开头
C、关键字可以作为用户标识符
D、Area与area是不同的标识符
(  D  )
34、在下面的条件语句中(其中s1个s2表示c语言语句),只有()在功能上与其他三个语句不等价。
A、if (a)
S1
else
S2
B、if (a==0)
S2
else
 S1
C、if (a!=0)
S1
else
S2
D、if (a==0)
S1
 else
 S2
(  B  )
35、下列运算符中,优先级最低的是________。
A、*
B、=
C、==
D、%
(  A  )
36、设有定义:int x=2,*p=&x; float=3.0; char z='c'; 则立即进行以下运算有安全隐患的是________。
A、p++
B、x++
C、y++
D、z++
(  C  )
37、若x为int型变量,则以下函数fun的类型为________。
fun(x)
{
printf("%d\n",x);
}
A、返回值为void类型
B、无法确定返回值
C、返回值为int类型
D、无返回值
(  C  )
38、在c语言中,只有在使用时才占用内存单元的变量,其存储类型是________。
A、auto和static
B、extern和register
C、auto和register
D、static和register
(  A  )
39、下列说法不正确的是________。
A、主函数main中定义的变量在整个文件或程序中有效
B、不同函数中,可以使用相同名字的变量
C、形式参数是局部变量
D、在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效
(  B  )
40、表达式,0x13&0x17的值是________。
A、0x17
B、0x13
C、0xf8
D、0xec
(  C  )
41、设 char *s="\ta\017bc";
则指针变量s指向的字符串所占的字节数 是________。
A、9
B、5
C、6
D、7
(  B  )
42、变量的指针,其含义是指该变量的________。
A、值
B、地址
C、名
D、一个标志
(  C  )
43、以下程序段运行后的结果是________
int x=1,y=2,z=3;
y+=x+=z;
printf("%d",x<y?x++:y++);
A、6
B、5
C、4
D、3
(  C  )
44、若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为______。
A、*(a+j*n+i)
B、*(a+i*n+j)
C、*(*(a+i)+j)
D、*(*a+i)+j
(  A  )
45、c语言的if语句中,用作判断的表达式为____
A、任意表达式
B、逻辑表达式
C、关系表达式
D、算术表达式
(  A  )
46、一个变量的指针就是________。
A、变量的地址
B、变量的值
C、变量的名称
D、变量的类型
(  B  )
47、若 k 为 int 型变量,则以下程序段的执行结果是()。k=-8567; printf("|%06D|\n",k);
A、格式描述符不合法,输出无定值
B、输出为|%06D|
C、输出为|0-8567|
D、输出为|-8567|
(  A  )
48、结构体类型的定义允许嵌套是指()。
A、成员是已经或正在定义的结构体型
B、成员可以重名
C、结构体型可以派生
D、定义多个结构体型
(  A  )
49、设有以下语句, 若 0
A、strp
B、str[k]
C、strp[k]
D、*strp
(  B  )
50、下列标识符中,不合法的 C语言用户自定义标识符是()。
A、printf
B、enum
C、_(下划线)
D、sin