福建工程学院C语言专升本练习

本试卷为福建工程学院C语言专升本练习,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

C语言专升本练习

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

(  D  )
1、能正确表示a和b同时为正或同时为负的逻辑表达式是________。
A、(a>=0‖b>=0)&&(a<0‖b<0)
B、(a>=0&&b>=0)&&(a<0&&b<0)
C、(a+b>0)&&(a+b<=0)
D、a*b>0
(  B  )
2、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node*next;
}
a,b,*p=&a,*q=&b;
A、a.next=q;
B、P.next=&b:
C、p—>next=&b;
D、(*p).next=q;
(  B  )
3、以下程序的输出结果是________。
main()
{
char ch[3][4]= { "123","456"."78" }, *p[3];
int i;
for(i==-0; i<3; i++) p[i]=ch[i];
for(i=0; i<3; i++) printf("%s", p[i]);
}
A、123456780
B、123 456 780
C、12345678
D、147
(  D  )
4、以下选项中能表示合法常量的是________。
A、整数:1,200
B、实数:1.5E2.0
C、字符斜杠:"\"
D、字符串:"\007"
(  B  )
5、以下关于函数的叙述中正确的是________。
A、每个函数都可以被其它函数调用(包括main函数)
B、每个函数都可以被单独编译
C、每个函数都可以单独运行
D、在一个函数内部可以定义另一个函数
(  A  )
6、有以下定义:int a; long b; double x,y; 则以下选项中正确的表达式是________。
A、a%(int)(x-y)
B、a=x!=y;
C、(a*y)%b
D、y=x+y=x
(  B  )
7、以下程序的输出结果是
char cchar(char ch)
{
if(ch>=‘a’&&ch<=‘z') ch=ch-‘a'+‘a';
return ch;
}
main()
{
char s[]="abc+abc=defdef",*p=s;
while(*p)
{
*p=cchar(*p);
p++;
}
printf("%s\n",s);
}
A、abc+ABC=DEFdef
B、abc+abc=defdef
C、abcaABCDEFdef
D、abcabcdefdef
(  D  )
8、以下能正确定义数组并正确赋初值的语句是______。
A、int n=5,b[n][n];
B、int a[1][2]={{1},{3}};
C、int c[2][]={{1,2},{3,4}}
D、int a[3][2]={{1,2},{3,4}}
(  D  )
9、下面程序的输出是______。
main ()
{
struct cmplx
{
int x ;
int y ;
}
cnum[2]={1 , 3 , 2 , 7};
printf ( "%d\n" , cnum[0].y/cnum[0].x*cnum[1].x );
}
A、0
B、1
C、3
D、6
(  D  )
10、以下程序的输出结果是 __________.
#include <stdio.h>
void fun()
{
static int a=0;
a+=2;
printf("%d",a);
}
void main()
{
int cc;
for(cc=1;cc<4;cc++) fun( );
printf("\n");
}
A、2222
B、2468
C、222
D、246
(  B  )
11、若有说明int a[3][4]; 则a数组元素的非法引用是________。
A、123
B、2.5
C、-12
D、1563
(  A  )
12、若i、j已定义为int型,则以下程序段中内循环的总的执行次数是________。 for(i=5;i>0;i--) for(j=0;j<4;j++)…
A、20
B、24
C、25
D、30
(  C  )
13、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是________。
A、EOF
B、-1
C、1
D、NULL
(  D  )
14、已知小写英文字母"a"的ascii码值为61h,现字母"g"被存放在某个存储单元中,若采用偶校验(假设最高位作为校验位),则该存储单元中存放的十六进制数是______。
A、66H
B、E6H
C、67H
D、E7H
(  C  )
15、以下程序的输出结果是________。
#include <stdio.h>
void swap(int*a, int *b)
{
int*t;
t=a;
a=b;
b=t;
}
main()
{
int i=3, j=5, *p=&i, *q=&j;
swap(p, q);
printf(1%d %d , *p, *q);
}
A、23
B、34
C、35
D、45
(  A  )
16、若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]=0,( *p)[3]; p=s;
A、*(*(p+i)+j)
B、*(p[i]+j)
C、(p+i)+j
D、(*(p+i))[j]
(  D  )
17、以下有关function过程的说法中,正确的是______ 。
A、函数名在过程中只能被赋值一次
B、如果在函数体内没有给函数名赋值,则该函数无返回值
C、如果在定义函数时没有说明函数的类型,则该函数是无类型的
D、执行函数过程中的Exit Function语句,将退出该函数,返回到调用点
(  D  )
18、在函数声明中,下面哪项是不必要的________。
A、函数参数的类型和参数名
B、函数名
C、函数的类型
D、函数体
(  C  )
19、关于数组的叙述中,下列说法不正确的是________。
A、数组是最简单的复合数据类型,是有限元素的有序集合
B、数组的元素可以是值(基本数据类型)、对象或其他数组
C、定义数组时,必须分配内存
D、一个数组中的元素都必须是相同的类型
(  C  )
20、若a的值为3时,下列程序段被执行后,c的值是________。
int c = 1;
if (a>0) if (a>3) c = 2;
else c = 3;
else c = 4;
A、1
B、2
C、3
D、4
(  C  )
21、下列语句中执行跳转功能的语句是________。
A、for语句
B、while语句
C、continue语句
D、switch语句
(  C  )
22、程序的基本控制结构是______。
A、顺序结构,多分支结构和单分支结构
B、顺序结构,支结构和循环结构
C、顺序结构,选择结构和循环结构。
D、单行结构和多行结构。
(  C  )
23、若有说明语句:int i,x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是______。
A、i=*(*(x+1)+1)
B、i=x[1][1]
C、i=*(*(x+1))
D、i=*(x[1]+1)
(  D  )
24、以下叙述不正确的是________。
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
(  B  )
25、在下列的标识符中,错误的是________。
A、$_123
B、1xyz
C、$1_abc
D、abc_$123
(  D  )
26、结构化程序流程图中一般包括三种基本结构,下述结构中哪一种不属于基本结构( )
A、顺序结构
B、条件结构
C、选择结构
D、嵌套结构
(  A  )
27、十六进制数100转换为十进制数为
A、256
B、512
C、1024
D、64
(  C  )
28、若有说明语句:char ch='\x41'; 则ch中______。
A、包含4个字符
B、包含2个字符
C、包含1个字符
D、字符个数不确定,说明不正确
(  C  )
29、有以下程序
main() {
int i;
for(i=0;i<3;i++)
switch(i) {
case 0: prinft("%d",i);
case 2: prinft("%d",i);
default:prinft("%d",i);
}
}
程序运行后的输出结果是________。
A、022111
B、021021
C、000122
D、012
(  C  )
30、下面程序的输出结果是
#include<stdio.h>
main()
{
int a[]=1,2,3,4,5,6,7,8,9,0,*p;
p=a;
printf("%d\n",*p+9);
}
A、0
B、1
C、10
D、9
(  A  )
31、若有以下程序
#include<stdio.h>
main() {
int a=6,b=0,c=0;
for(;a;) {
b+=a;
a-=++c;
}
printf("%d,%d,%d\n",a,b,c);
}
则程序的输出结果是______。
A、0,14,3
B、1,14,3
C、0,18,3
D、0,14,6
(  C  )
32、下面判断正确的是________。
A、char*a="china";等价于char *a;*a="china";
B、char str[5]="china";等价于char str[]="china";
C、char*S="china";等价于char *S;S="china";
D、char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";
(  C  )
33、以下字符常量中不合法的是________。
A、'@'
B、'&'
C、"K"
D、'整'
(  B  )
34、有以下程序: int*f(int*x,int*y)
{
if(*x<*y) return x;
else return y;
}
main()
{
int a=7,b=8,*p,*q,*r;
p=&a;
q=&b;
r=f(p,q);
print("% d,% d,% d\n",*p,*q,*r);
}
执行后的输出结果是 ______。
A、7,8,8
B、7,8,7
C、8,7,7
D、8,7,8
(  C  )
35、请读程序:
#include <stdio.h>
func(int a, int b) {
int c;
c=a+b;
return c;
}
main()
{
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
上面程序的输出结果是________。
A、11
B、20
C、21
D、31
(  C  )
36、\、/、mod、*等4个算术运算符中,优先级最低的是________。
A、\
B、/
C、Mod
D、*
(  C  )
37、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s);
其输出结果为________。
A、a book!
B、a book
C、a bo
D、a
(  D  )
38、下面程序的输出结果是______。
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*(p+8));
}
A、0
B、8
C、10
D、9
(  B  )
39、以下选项中,能定义m为合法的结构体变量的是______。
A、typedef struct abc {
double a;char b;} m;
B、struct {
double a;char b;}m;
C、struct ABC {
double a;char b;} ABC m;
D、typedef ABC{
double a;char b; } ABC m;
(  A  )
40、若变量已正确定义,表达式 (j=3, j++) 的值是____。
A、3
B、4
C、5
D、6
(  B  )
41、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为________。
A、a<>0
B、a
C、!a
D、a=0
(  C  )
42、若变量a,b,t 已正确定义,要将a 和b 中的数进行交换,以下选项中不正确的语句是________。
A、a=a+b ;b=a-b ;a=a-b ;
B、t=a ; a=b;b=t ;
C、a=t ;t=b ;b=a;
D、t=b ;b=a; a=t ;
(  B  )
43、软件设计中模块划分应遵循的准则是________。
A、低内聚低耦合
B、高内聚低耦合
C、低内聚高耦合
D、高内聚高耦合
(  D  )
44、下列字符序列中,可用作c标识符的一组字符序列是________。
A、S.b,sum,average,_above
B、class,day,lotus_1,2day
C、#md,&12x,month,student_n!
D、D56,r_1_2,name,_st_1
(  D  )
45、以下不正确的叙述是________。
A、在C程序中所用的变量必须先定义后使用
B、程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D、当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
(  B  )
46、int (*p)[6]; 它的含义为________。
A、具有6个元素的一维数组
B、定义了一个指向具有6个元素的一维数组的行指针变量
C、指向整型指针变量
D、指向6个整数中的一个的地址
(  C  )
47、设c 语言中,一个int 型数据在内存中占2 个字节,则unsignedint 型数据的取值范围为________。
A、0-255
B、0-32767
C、0-65535
D、0-2147483647
(  B  )
48、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为________。
A、auto
B、extern
C、static
D、Register
(  C  )
49、判断两个字符串是否相等,正确的表达方式是
A、s1==s2
B、s1=s2
C、strcmp(s1,s2)==0
D、strcmp(s1,s2)=0
(  B  )
50、C语言函数内定义的局部变量的隐含存储类别是
A、static
B、auto
C、register
D、extern