【期末高分题集】[西安交通大学]《程序设计基础》考核必备14
奥鹏期末考核
598–科目名《程序设计基础奥鹏期末考试题库合集
单选题:
(1)有如下程序, 该程序的输出的结果是( )int addc(int a,int b,int c) { c=a+b;return(c); } main() { int x=4,y=2,z,r; z=x+y;r=addc(addc(x,y,z),addc(y,z,x),z);printf("%dn",r); }
A.36
B.12
C.14
D.6
答案问询微信:424329
(2)以下叙述中正确的是()。
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占编译时间
D.在以下定义中CR是称为"宏名"的标识符#defineCR045
答案问询微信:424329
(3)以下叙述正确的是()。
A.在C程序中,main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案问询微信:424329
(4)以下正确的说法是:在C语言中()。
A.实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元
D.形参是虚拟的,不占用存储单元
答案问询微信:424329
(5)以下函数,哪个不属于动态申请空间的标准库函数( )
A.malloc( )
B.calloc( )
C.free( )
D.strcmp( )
答案问询微信:424329
(6)设int x=1,y=1;表达式(!x||y–)的值是()。
A.0
B.1
C.2
D.-1
答案问询微信:424329
(7)算法的空间复杂度是指( )
A.算法程序的长度
B.算法程序中的指令条数
C.算法程序所占的存储空间
D.执行过程中所需要的存储空间
答案问询微信:424329
(8)下列说法不正确的是( )
A.++,只能用于变量
B.++,比负号运算符的优先级要高
C.++,的结合方向是:自右向左
D.++,常用于循环变量表达式中
答案问询微信:424329
(9)在C语言中,能代表逻辑值“真”的是()。
A.True
B.大于0的数
C.非0整数
D.非0的数
答案问询微信:424329
(10)变量的指针,其含义是指该变量的()。
A.值
B.地址
C.名
D.一个标志
答案问询微信:424329
(11)可将C源程序存在磁盘上,还可将数据按数据类型分别以()的形式存在磁盘上。
A.内存
B.缓冲区
C.文件
D.寄存器
答案问询微信:424329
(12)C语言规定,程序中各函数之间
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
答案问询微信:424329
(13)若有以下程序#include void f(int n);main(){ void f(int n);f(5);}void f(int n){ printf("%dn",n); }则以下叙述中不正确的是( )
A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B.若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C.对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
D.函数f无返回值,所以可用void将其类型定义为无值型
答案问询微信:424329
(14)以下程序的运行结果是()。main(){int i=1,sum=0;while(i10)sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}
A.i=10,sum=9
B.i=9,sum=9
C.i=2,sum=1
D.运行出现错误
答案问询微信:424329
(15)下面转义字符中,表示字符串结束的是( )
A.
B.n
C.r
D.f
答案问询微信:424329
(16)关于数组,下列说法错误的是( )
A.在任何一个数组中,数组元素的类型都是一致的
B.常量表达式不允许是变量
C.一维数组中的各个元素在内存中是按顺序存放的
D.C语言运行时要检查数组的边界,即下标值超界时,系统会报错
答案问询微信:424329
(17)若使用一维数组名作函数实参,则以下正确的说法是()。
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.在被调用函数中,不需要考虑形参数组的大小
D.实参数组名与形参数组名必须一致
答案问询微信:424329
(18)以下说法错误的是( )
A.int (*p)( ) ; 表示p被定义为一个指向返回值为整数的函数的指针
B.使用指向函数的指针是结构化程序设计的一种有效手段。
C.char **p相当于char *(*p)
D.指针数组的元素补仅能存放地址,还可以存放其他数组的元素。
答案问询微信:424329
(19)关于字符数组,下列说法错误的是( )
A.字符型数组中的每一个元素只能存放一个字符型数据
B.逐个输入输出字符时,要用“%c”格式符
C.scanf(“%s”,&s);的写法是正确的
D.数组名就是数组的起始地址
答案问询微信:424329
(20)下列关于单目运算符++、–的叙述中正确的是( )
A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
答案问询微信:424329
(21)有以下程序int *f(int *x,int *y){ if(*x*y) return x; else return y;}main(){ int a=7,b=8,*p,*q,*r}; 执行后输出结果是
A.7,8,8
B.7,8,7
C.8,7,7
D.8,7,8
答案问询微信:424329
(22)关于结构体,下列说法错误的是( )
A.不能将一个结构体变量作为一个整体进行输入和输出。
B.对成员变量可以像普通变量一样进行各种运算。
C.结构体变量的地址主要用作函数参数传递结构体的地址。
D.结构体变量赋初值与数组不同,可以不一一对应。
答案问询微信:424329
(23)下列四个选项中,均是C语言关键字的选项是()。
A.auto、enum、include
B.switch、typedef、continue
C.signed、union、scanf
D.if、struct、type
答案问询微信:424329
(24)设:int a = 4, b = 5; 则表达式 84-!0||24 的结果为( )
A.0
B.1
C.-1
D.无法计算
答案问询微信:424329
(25)若已定义:int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中 0i9, 则对a数组元素不正确的引用是( )
A.a[p-a]
B.*(&a[i])
C.p[i]
D.a[10]
答案问询微信:424329
(26)已定义c为字符型变量,则下
列语句中正确的是( )
A.c='97';
B.c="97";
C.c=97;
D.c="a";
答案问询微信:424329
(27)以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
答案问询微信:424329
(28)下列标识符中,不合法的C语言用户自定义标识符是()。
A.printf
B.enum
C._
D.sin
答案问询微信:424329
(29)能将高级语言编写的源程序转换为目标程序的软件是( )
A.汇编程序
B.编辑程序
C.解释程序
D.编译程序
答案问询微信:424329
(30)关于链表,下列说法错误的是( )
A.链表是动态分配的一种结构,它根据需要开辟内存单元
B.链表有头指针变量head,它是链表的第一个结点
C.如果要在链表中增加新的结点,需要申请存储空间
D.如果不再使用链表,则应释放所占的存储空间
答案问询微信:424329
(31)若x=2,y=3则x&y的结果是()。
A.0
B.2
C.3
D.5
答案问询微信:424329
(32)下列各数据类型不属于构造类型的是
A.枚举型
B.共用型
C.结构型
D.数组型
答案问询微信:424329
(33)以下运算符中,优先级最高的运算符是()。
A.||
B.%
C.!
D.==
答案问询微信:424329
(34)下列说法不正确的是:( )
A.++、——只能用于变量
B.++、——比负号运算符的优先级要高
C.++、——的结合方向是:自右至左。
D.++、——常用于循环变量表达式中
答案问询微信:424329
(35)设有以下说明语句typedef struct { int n;char ch[8];}PER;则下面叙述中正确的是( )
A.PER 是结构体变量名
B.PER是结构体类型名
C.typedef struct 是结构体类型
D.struct 是结构体类型名
答案问询微信:424329
(36)关于建立函数的目的,以下正确的说法是()。
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存
答案问询微信:424329
(37)int a[10]={1,2,3,4,5,6,7,8};int *p;p=p[-3]的值是()。
A.2
B.3
C.4
D.不一定
答案问询微信:424329
(38)以下运算符中优先级最低的是()。
A.&&
B.&
C.||
D.|
答案问询微信:424329
(39)以下程序的输出结果是()。main(){char s[]="123",*p;p=s;printf("%c%c%cn",*p++,*p++,*p++);}
A.123
B.321
C.213
D.312
答案问询微信:424329
(40)若有int a[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A.非法,2
B.&a[1][0],2
C.&a[0][1],3
D.a[0][0],4
答案问询微信:424329
(41)有如下的数组 static int a[10]; 则( )
A.该数组没有被初始化
B.数组的所有元素都被赋值为0
C.数组的第一个元素是a[1]
D.数组共有11个元素
答案问询微信:424329
(42)设:int a=4,b=5; 则表达式 84-!0||24的结果为( )
A.0
B.1
C.-1
D.无法计算
答案问询微信:424329
(43)应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。
A.fclose()
B.close()
C.fread()
D.fwrite
答案问询微信:424329
(44)下列程序段的输出结果为()。Int x=3,y=2;printf("%d",(x-=y,x*=y+8/5));
A.1
B.7
C.3
D.5
答案问询微信:424329
(45)以下的选择中,正确的赋值语句是()。
A.a=1,b=2
B.j++
C.a=b=5;
D.y=int(x)
答案问询微信:424329
(46)以下错误的描述是:函数调用可以()。
A.出现在执行语句中
B.出现在一个表达式中
C.做为一个函数的实参
D.做为一个函数的形参
答案问询微信:424329
(47)下列程序的输出结果是( )int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2; res += func( printf(%d\n,res);}
A.4
B.6
C.8
D.10
答案问询微信:424329
(48)以下不能定义为用户标识符的是( )
A.scanf
B.Void
C._3com_
D.int
答案问询微信:424329
(49)若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( )
A.4
B.16
C.32
D.52
答案问询微信:424329
(50)下面程序:#include "stdio.h"#include stdlib.hfut(int **s,int p[2][3]){**s=p[1][1];}void main(){ int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut( printf("%dn",*p);getch();}输出结果是( )
A.1
B.7
C.9
D.11
答案问询微信:424329
(51)。
A.A
B.B
C.C
D.D
答案问询微信:424329
(52)若fp已正确定义并指向某个文为件,当未遇到该文件结束标志时函数feof(fp)的值( )
A.0
B.1
C.-1
D.一个非0值
答案问询微信:424329
(53)C语言中,定义结构体的保留字是()。
A.union
B.struct
C.enum
D.typedef
答案问询微信:424329
(54)以下程序有语法错误,有关错误原因的正确说法是( )main(){ int G=5,k; void prt_char(); … k=prt_char(G);…}
A.语句 void prt_char();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
答案问询微信:424329
(55)static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()。
A.a[1]
B.a[-1]
C.a[0]
D.a[10]
答案问询微信:424329
(56)。
A.A
B.B
C.C
D.D
答案问询微信:424329
(57)下面程序的运行结果是#includemain(){ int y=10; do {y–;}while(–y); printf(%d\n,y–);}
A.-1
B.1
C.8
D.0
答案问询微信:424329
(58)关于switch语句说法不正确的是( )
A.case的次序不影响执行结果
B.每个case语句后面的常量可以不同
C.在执行完一个case语句后转到下一个case语句执行
D.每个case语句后面表达式只能是常量
答案问询微信:424329
(59)要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A.fopen(A.userabc.txt,r)
B.fopen(A.\user\abc.txt,r+)
C.fopen(A.userabc.txt,rb)
D.fopen(A.\user\abc.txt,w)
答案问询微信:424329
(60)设有定义:int n=0,*p= )
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
答案问询微信:424329
(61)C语言中,运算对象必须是整型数的运算符是( )
A.%
B.
C.%和
D.* *
答案问询微信:424329
(62)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是( )
A.int *i=NULL;
B.float *f=NULL;scanf("%d",i); *f=10.5;
C.char t='m', *c=
D.long *L;*c= L='