湖南工商大学往年计算机C语言专升本

本试卷为湖南工商大学往年计算机C语言专升本,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

计算机C语言专升本

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

(  A  )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
A、1
B、0
C、2
D、不知道a的值,不能确定
(  D  )
2、下列说法正确的是________。
A、在c语言中,可以使用动态内存分配技术定义元素个数可变的数组
B、在C语言中,数组元素的个数可以不确定,允许随机变动
C、在C语言中,数组元素的数据类型可以不一致
D、在C语言中,定义一个数组后,就确定了它所容纳的元素的个数
(  C  )
3、设有程序段: int k=12; while(k=1) k=k-1; 则下列描述中正确的是________。
A、while循环执行10次
B、循环是无限循环
C、循环体语句一次也不执行
D、循环体语句执行一次
(  A  )
4、有以下程序:
#include<stdio.h>
main()
{
char c1='1',c2='2';
c1=getchar();
c2=getchar();
putchar(c1);
putchar (c2);
}
当程序运行时输入a<回车>后,下列叙述中正确的是________。
A、变量c1被赋予字符a,c2被赋予回车符
B、程序将等待用户输入第2个字符
C、变量c1被赋予字符a,c2中仍是原有字符2
D、变量c1被赋予字符a,c2中将无确定值
(  D  )
5、c语言中,下列不合法的字符常量是________。
A、'\xff'
B、'\65'
C、'&'
D、'\028'
(  D  )
6、下面是有关c语言字符数组的描述,其中错误的是________。
A、不可以用赋值语句给字符数组名赋字符串
B、可以用输入语句把字符串整体输入给字符数组
C、字符数组中的内容不一定是字符串
D、字符数组只能存放字符串
(  D  )
7、执行下面的程序后,a的值为________。
main()
{
int a,b;
for(a=1,b=1;a<=10;a++)
{
if(b%3==l)
{
b+=3;
continue;
}
b-=5;
}
}
A、7
B、8
C、9
D、10
(  B  )
8、有以下程序:
main()
{
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;
p=q;
q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果是________。
A、1,2,1,2
B、1,2,2,1
C、2,1,2,1
D、2,1,1,2
(  D  )
9、c语言对嵌套的if语句的规定是:else总是与 配对。
A、与之前最近的if
B、第一个if
C、缩进位置相同的if
D、与之前最近的且尚未配对的if
(  D  )
10、执行下面程序段,给x、y赋值时,不能作为数据分隔符的是________。 int x,y; scanf("%d%d",&x,&y);
A、空格
B、Tab键
C、回车
D、逗号
(  D  )
11、putchar ( )函数可以向终端输出一个 ( ) 。
A、整型变量表达式值
B、实型变量值
C、字符串
D、字符或字符型变量值
(  B  )
12、在执行以下程序时,如果从键盘上输入:abcdef<回车>,则输出为
#include <stdio.h>
main( )
{
char ch;
while ((ch=getchar( ))!='\n')
{
if (ch>='a' && ch<='z') ch=ch+32;
else if (ch>='a' && ch<'z') ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
A、ABCdef
B、abcDEF
C、abc
D、DEF
(  C  )
13、以下程序段完全正确的是________。
A、int *p; scanf("%d",&p);
B、int *p; scanf(“%d”,p);
C、int k, *p=&k; scanf("%d",p);
D、int k, *p:; *p= &k; scanf(“%d”,p);
(  A  )
14、有以下程序
struct stu
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct stu s[2]={{"sundan",20044},{"penghua",20045}};
num = s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
程序运行后的输出结果是________。
A、SunDan 20042
B、SunDan 20044
C、LiSiGuo 20042
D、YangSan 20041
(  B  )
15、在64位计算机中,一个字长所占字节数为________。
A、64
B、8
C、4
D、1
(  D  )
16、英文小写字母d的ascii码为100,英文大写字母d的ascii码为
A、50
B、66
C、52
D、68
(  C  )
17、以下叙述正确的是________。
A、C语言程序将从源程序中第一个函数开始执行
B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C、C语言规定必须用min作为主函数名,程序将从开始执行,在此结束
D、min可作为用户标识符,用以命名任意一个函数作为主函数
(  C  )
18、若有以下说明语句:
struct date
{
int year;
int month;
int day;
} brithday;
则下面的叙述不正确的是_____.
A、struct是声明结构体类型时用的关键字
B、struct date 是用户定义的结构体类型名
C、brithday是用户定义的结构体类型名
D、year,day 都是结构体成员名
(  C  )
19、若有说明 char c[7]= { 's','t','r','i','n','g' } ; 则对元素的非法引用是 __________.
A、c[0]
B、c[9-6]
C、c[4*2]
D、c[2*3]
(  D  )
20、设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是 int a[10]= {0,1,2,3,4,5,6,7,8,9 },*p=a;
A、a[p-a]
B、*(&
C、p
D、*(*(a +)
(  D  )
21、下列字符中,其ascii码值最大的是______。
A、6
B、空格字符
C、Z
D、a
(  D  )
22、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
A、*((*ptr+1)[2])
B、a[2][3]
C、(*ptr+1)+2
D、*(*(a+1)+2)
(  A  )
23、若有以下类型说明语句: char w; int x; float y,z; 则表达式w*x+z-y的结果为_______类型。
A、float
B、char
C、int
D、double
(  A  )
24、若定义static int a[2][2]={1,2,3,4 },则a数组的各数组元素分别为______。
A、a[0][0]=1、a[0][1]=2、at[1][0]=3、a[1][1]=4
B、a[0][0]=1、a[0][1]=3、a[1][0]=2、a[1][1]=4
C、a[0][0]=4、a[0][1]=3、a[1][0]=2、s[1][1]=1
D、a[0][0]=4、a[0][1]=2、a[1][0]=3、a[1][1]=1
(  C  )
25、有以下程序段
typedef struct node
{
int data;
struct node * next;
}
* node;
node p;
以下叙述中正确的是________。
A、p是指向struct node结构变量的指针的指针
B、NODEp;语句出错
C、p是指向struct node结构变量的指针
D、p是struct node结构变量
(  B  )
26、以下函数调用语句中含有_______个实参。 func((exp1,exp2),(exp3,exp4,exp5));
A、1
B、2
C、4
D、5
(  D  )
27、下列定义变量的语句中错误的是________。
A、int_int;
B、double int_;
C、char For;
D、float US$;
(  D  )
28、表达式x+1>x是________。
A、算术表达式
B、非法表达式
C、字符串表达式
D、关系表达式
(  C  )
29、在下列叙述中,正确的一条是______。
A、if(表达式)语句中,表达式的类型只限于逻辑表达式
B、语句“goto 12;”是合法的
C、for(;;)语句相当于while(1)语句
D、break语句可用于程序的任何地方,以终止程序的执行
(  A  )
30、下列合法的字符型常量是________。
A、'\x13'
B、'\081'
C、'65'
D、"\n\
(  D  )
31、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
A、12
B、15
C、6
D、5
(  A  )
32、若x、y均是int型变量,则执行以下语句后的结果是________
for(x=1;x<5;x+=2)
for(y=1;y<5;y++)
{
printf("%2d",x*y);
if(y==4)printf("\n");
}
A、1 2 3 4 3 6 9 12
B、2 3 4 5 3 4 5 6
C、1 2 3 4 5 6 9
D、2 3 4 3 6 9 6 9 12
(  C  )
33、关于strcmp()函数,下列描述中错误的是________。
A、strcmp()函数用于比较两个字符串的内容是否相等
B、如果两个字符串的内容相同,strcmp()函数返回0
C、strcmp()函数是可变参数的函数
D、strcmp()函数只能接收字符指针作为参数,并不接收单个字符
(  B  )
34、下面程序的输出结果是______。
main( )
{
int b[]={1,2,3,4,5,6,7,8,9,0},*q;
q=b;
printf("%d\n",*(q+0));
}
A、0
B、1
C、10
D、9
(  B  )
35、执行下面程序片段的结果是______。int x=23;
do
{
printf("%2d",x--);
}
while(!x);
A、打印出321
B、打印出23
C、不打印任何内容
D、陷入死循环
(  B  )
36、有以下程序:
#include <stdio.h>
main()
{
file *fp;
int i,k=0,n=0;
fp=fopen("d1.dat","w");
for(i=1;i<4;i++) fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);
printf("%d %d\n",k,n);
fclose(fp);
}
执行后输出结果是______。
A、1 2
B、123 0
C、1 23
D、0 0
(  C  )
37、设 float f[10]; 则f数组中下标最大的元素的正确表示为________。
A、f[10]
B、f[0]
C、f[9]
D、f(9)
(  C  )
38、字符’a’的ascii码为65,若定义char x=’a’,那么printf("%d" , x)的输入结果为________。
A、A
B、a
C、65
D、不确定
(  D  )
39、若有int *p1, *p2,k; 不正确的语句是________。
A、p1=&k
B、p2=p1
C、*p1=k+12
D、k=p1+p2
(  B  )
40、流程图中,输入/输出框用( )图形表示?
A、圆角矩形
B、平行四边形
C、矩形
D、菱形
(  A  )
41、在c语言中,当内部函数与外部函数重名时,下列描述中正确的是________。
A、当调用时,会调用内部函数
B、当调用时,会调用外部函数
C、当调用时,会调用两次,先调用内部函数再调用外部函数
D、都不调用,会报错
(  A  )
42、以下求 n! 的函数可以正确计算21!,正确的选项是________。_______ fact(int n)
{
int i;
_______ product;
product = 1;
for (i = 1; i <= n; i++)
{
product = product * i;
}
return product;
}
A、double
B、int
C、float
D、void
(  D  )
43、以下叙述中正确的是________。
A、数组下标的下限是 1
B、数组下标的下限由数组中第一个非零元素的位置决定
C、数组下标的下限由数组中第一个被赋值元素的位置决定
D、char c1,c2,*c3,c4[40]是合法的变量定义语句
(  C  )
44、c语言中文件的存取方式是________。
A、顺序存取
B、随机存取
C、顺序存取,随机存取均可
D、顺序存取,随机存取均不可
(  A  )
45、以下数据中,不正确的数值或字符常量是________。
A、8.9e1.2
B、10
C、0xff00
D、82.5
(  A  )
46、以下数据中,不正确的数值或字符常量是________。
A、c
B、66
C、0xaa
D、50
(  C  )
47、下列程序段的输出结果为________。 float x=213.82631; printf("%3d",(int)x);
A、213.82
B、213.83
C、213
D、3.8
(  A  )
48、若变量均已正确定义并赋值,以下合法的c语言赋值语句是________。
A、x=n/2.5;
B、x==5;
C、x+n=I;
D、5=x=4+1;
(  D  )
49、有字符数组a[80]和b[80],则正确的输出语句是________。
A、puts(a,b);
B、printf("%s,%s",a[],b[]);
C、putchar(a, b);
D、puts(a),puts(b);
(  D  )
50、若int 类型数据占2 字节,则以下语句的输出为________。int k=32768;
printf(''%d,%u\n'',k,k);
A、-1,65535
B、-1,32767
C、-1, -1,
D、-32768,32768