西安交通大学《程序设计基础》期末考试必备题集

奥鹏期末考核

598–西安交通大学《程序设计基础》奥鹏期末考试题库合集

单选题:
(1)以下叙述正确的是()。
A.在C程序中,main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案问询微信:424329

(2)以下正确的说法是:在C语言中()。
A.实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元
D.形参是虚拟的,不占用存储单元
答案问询微信:424329

(3)下列说法不正确的是( )
A.++,只能用于变量
B.++,比负号运算符的优先级要高
C.++,的结合方向是:自右向左
D.++,常用于循环变量表达式中
答案问询微信:424329

(4)C语言中的文件类型只有()。
A.索引文件和文本文件两种
B.ASCII文件和二进制文件两种
C.文本文件一种
D.二进制文件一种
答案问询微信:424329

(5)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )
A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
答案问询微信:424329

(6)C语言规定,程序中各函数之间
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
答案问询微信:424329

(7)函数的形式参数隐含的存储类型说明是()。
A.extern
B.static
C.register
D.auto
答案问询微信:424329

(8)若有下列定义和语句,则对a数组元素的非法引用是()。Int a[2][3],(*pt)[3];pt=a;
A.pt[0][0]
B.*(pt+1)[2]
C.*(pt[1]+2)
D.*(a[0]+2
答案问询微信:424329

(9)若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()。
A.EOF
B.0
C.非零值
D.NULL
答案问询微信:424329

(10)以下不能正确定义二维数组的选项是( )
A.int a[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
D.int a[2][]={{1,2},{3,4}};
答案问询微信:424329

(11)若用数组名作为函数的实参,传递给形参的是()。
A.数组的首地址
B.数组第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
答案问询微信:424329

(12)关于结构体,下列说法错误的是( )
A.不能将一个结构体变量作为一个整体进行输入和输出。
B.对成员变量可以像普通变量一样进行各种运算。
C.结构体变量的地址主要用作函数参数传递结构体的地址。
D.结构体变量赋初值与数组不同,可以不一一对应。
答案问询微信:424329

(13)以下能正确定义数组并正确赋初值的语句是( )。
A.int N=5,b[N][N];
B.int a[1][2]={{1},{3}};
C.int c[2][]={{1,2},{3,4}};
D.int d[3][2]={{1,2},{34}};
答案问询微信:4243奥鹏期末考核29

(14)下列标识符中,不合法的C语言用户自定义标识符是()。
A.printf
B.enum
C._
D.sin
答案问询微信:424329

(15)关于链表,下列说法错误的是( )
A.链表是动态分配的一种结构,它根据需要开辟内存单元
B.链表有头指针变量head,它是链表的第一个结点
C.如果要在链表中增加新的结点,需要申请存储空间
D.如果不再使用链表,则应释放所占的存储空间
答案问询微信:424329

(16)有以下程序main(){ int a[][3]={{1,2,3},{4,5,0}},{*pa}[3],i; pa=a; for(i=0;i3;i++) if(i2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf(%dn,a[0][1]+a[1][1]+a[1][2]);}执行后输出结果是( )。
A.7
B.6
C.8
D.无确定值
答案问询微信:424329

(17)以下程序的输出结果是 ( )long fun( int n){ long s; if(n= =1 || n= =2) s=2; else s=n-fun(n-1); return s;}main(){ printf(%ldn, fun(3)); }
A.1
B.2
C.3
D.4
答案问询微信:424329

(18)设有以下说明语句typedef struct { int n;char ch[8];}PER;则下面叙述中正确的是( )
A.PER 是结构体变量名
B.PER是结构体类型名
C.typedef struct 是结构体类型
D.struct 是结构体类型名
答案问询微信:424329

(19)C语言中要求对变量作强制定义的主要理由是()。
A.便于移植
B.便于写文件
C.便于编辑预处理程序的处理
D.便于确定类型和分配空间
答案问询微信:424329

(20)结构化程序设计主要强调的是( )
A.程序的规模
B.程序的效率
C.程序设计语言的先进性
D.程序易读性
答案问询微信:424329

(21)设:int a=4,b=5; 则表达式 84-!0||2&&54的结果为( )
A.0
B.1
C.-1
D.无法计算
答案问询微信:424329

(22)下列说法错误的是( )
A.else总是和它上面的,离它最近的if配对
B.条件表达式可以不用括号括起来。
C.整个if语句在程序中被看作是一条语句
D.if语句中的各语句可以是一条语句,也可以是复合语句
答案问询微信:424329

(23)以下错误的描述是:函数调用可以()。
A.出现在执行语句中
B.出现在一个表达式中
C.做为一个函数的实参
D.做为一个函数的形参
答案问询微信:424329

(24)在位运算中,操作数每右移一位,其结果相当于()。
A.操作数乘以2
B.操作数除以2
C.操作数乘以16
D.操作数除以16
答案问询微信:424329

(25)includemain(){ int a=1,b=10; do {b-=a;a++;}while(b–0);printf(a=%d,b=%d\n,a,b);}
A.a=3,b=11
B.a=2,b=8
C.a=1,b=-1
D.a=4,b=9
答案问询微信:424329

(26)。
A.A
B.B
C.C
D.D
答案问询微信:424329

(27)下列类型中错误的是( )
A.unsigned
B.unsigned float
C.unsigned long int
D.unsigned int
答案问询微信:424329

(28)。
A.A
B.B
C.C
D.D
答案问询微信:424329

(29)设C语言中,int类型数据占2个字节,则short类型数据占()。
A.1个字节
B.2个字节
C.4个字节
D.8个字节
答案问询微信:424329

(30)若int i=10;执行下列程序后,变量i的正确结果是( )switch ( i ) {case 0: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}
A.10
B.11
C.12
D.13
答案问询微信:424329

(31)C语言中,定义结构体的保留字是()。
A.union
B.struct
C.enum
D.typedef
答案问询微信:424329

(32)以下叙述中不正确的是()。
A.一个好的程序应该有详尽的注释
B.在C程序中,赋值运算符的优先级最低
C.在C程序中,j++;是一条赋值语句
D.C程序中的#include和#define均不是C语句
答案问询微信:424329

(33)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

(34)每条C语句后面都要有一个( )
A.逗号
B.冒号
C.分号
D.括号
答案问询微信:424329

(35)要打开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

(36)设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是( )
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
答案问询微信:424329

(37)若程序中已包含头文件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=''
答案问询微信:424329

(38)以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n){ int i,j=0,p; p=j; for(i=j;iN;I++)  if(a[i]A[P])__________; return(p);}在下划线处应填入的是 ( )
A.i=p
B.a[p]=a[i]
C.p=j
D.p=i
答案问询微信:424329

(39)表达式:10!=9的值是( )
A.true
B.非零值
C.0
D.1
答案问询微信:424329

(40)若执行fopen函数时发生错误,则函数的返回值是()。
A.地址值
B.0
C.1
D.EOF
答案问询微信:424329

(41)表示关系x=y=z的c语言表达式为 ( )
A.(X=Y)&&(Y=Z)
B.(X=Y)AND(Y=Z)
C.(X=Y=Z)
D.(X=Y)&(Y=Z)
答案问询微信:424329

(42)int a[10];合法的数组元素的最小下标值为()。
A.10
B.9
C.1
D.0
答案问询微信:424329

(43)执行下列两个语句后,输出的结果为( )char c1=66,c2=98;printf(“%c,%d”,c1,c2);
A.66,98
B.66,b
C.B ,97
D.B,98
答案问询微信:424329

(44)字符数组char a[]=”How do you do?”;的大小为( )
A.10
B.11
C.14
D.15
答案问询微信:424329

(45)关于函数调用,下面说法错误的是( )
A.被调用函数必须是已经存在的函数、库函数或用户已定义过的函数
B.没有头文件也可以对库函数进行调用
C.如果使用用户自定义的函数,还要在主调用函数中说明用户函数的返回值类型。
D.在主函数main()中可以调用其他函数,其他函数也可以相互调用
答案问询微信:424329

(46)设有以下说明语句struct ex{ int x ; float y; char z ;}example;则下面的叙述中不正确的是
A.struct结构体类型的关键字
B.example是结构体类型名
C.x,y,z都是结构体成员名
D.struct ex是结构体类型名
答案问询微信:424329

(47)fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
A.字符串读入后不会自动加入''
B.fp是file类型的指针
C.fgets函数将从文件中最多读入n-1个字符
D.fgets函数将从文件中最多读入n个字符
答案问询微信:424329

(48)。
A.1
B.10
C.6
D.死循环,不能确定次数
答案问询微信:424329

(49)C语言中,要求运算数必须是整型的运算符是()。
A.^
B.%
C.!
D.
答案问询微信:424329

(50)逻辑运算符两侧运算对象的数据类型()。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
答案问询微信:424329

(51)函数 rewind 的作用是( )
A.使文件位置指针重新返回文件的开始位置
B.将文件位置指针指向文件中所要求的特定位置
C.使文件位置指针指向文件的末尾
D.使文件位置指针自动移至下一个字符位置
答案问询微信:424329

(52)下面程序#include "stdio.h"void main(){ int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf("%dn",n); getch();}的运行结果是( )
A.7
B.8
C.9
D.10
答案问询微信:424329

(53)结构体如下所示:struct employees;{ char name[30]; int age; float wage;};下面说法错误的是:( )
A.上述形式的定义在程序运行时不会为该结构体类型分配内存空间。
B.结构体变量在内存中存放时,占用连续的一段存储空间
C.上述结构体必须有关键字struct
D.上述结构体成员的类型不可以是已经定义过的结构体类型。
答案问询微信:424329

(54)凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A.自动(auto)
B.静态(static)
C.外部(extern)
D.寄存器(register)
答案问询微信:424329

(55)以下数值中,不正确的八进制数或十六进制数是()。
A.0x16
B.016
C.-1
D.0xaaaa
答案问询微信:424329

(56)以下选项中合法的实型常数是()。
A.5E2.0
B.E-3
C..2E0
D.1.3E
答案问询微信:424329

(57)C语言中,要求运算数必须是整型的运算符是()
A.^
B.%
C.!
D.>
答案问询微信:424329

(58)int a=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
则a的值为()
A.1
B.2
C.3
D.不一定
答案问询微信:424329

(59)以下叙述中正确的是()
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
答案问询微信:424329

多选题:
(1)以下关于typedef的叙述正确的是()。
A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的名字来代表
D.使用typedef便于程序的通用
答案问询微信:424329

(2)定义语句:int x,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。
A.1112回车
B.11,空格12回车
C.11,12回车
D.11,回车12回车
答案问询微信:424329

(3)有定义语句:int x,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。
A.1112回车
B.11,空格12回车
C.11,12回车
D.11,回车12回车
答案问询微信:424329

(4)以下对switch语句和break语句中描述错误的有()。
A.在switch语句中必须使用break语句
B.break语句只能用于switch语句
C.在switch语句中,可以根据需要使用或不使用break语句
D.break语句是switch语句的一部分
答案问询微信:424329

(5)以下不合法的赋值语句是()。
A.x=y=100
B.d–;
C.x+y;
D.c=int(a+b);
答案问询微信:424329

(6)若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是()。
A.a=b=c=d=100;
B.d++;
C.c+b;
D.d=(c=22)-(b++);
答案问询微信:424329

(7)以下合法的十六进制数是()。
A.oxff
B.0Xabc
C.0x01
D.0X9X
答案问询微信:424329

(8)以下4个选项中,可以看作是一条语句的有()。
A.{;}
B.a=0,b=0,c=0;
C.if(a0);
D.if(b==0)m=1;n=2;
答案问询微信:424329

(9)定义c为字符型变量,则下列语句中错误的是()。
A.c='97';
B.c="97";
C.c=97;
D.c="a";
答案问询微信:424329

(10)数据结构中,与所使用的计算机有关的是数据的哪几项()
A.存储结构
B.物理结构
C.逻辑结构
D.物理和存储结构
答案问询微信:424329

(11)设有以下定义int a=0;double b=1.25;cha rc='A';#defined2则下面语句中正确的是()。
A.a++;
B.b++;
C.c++;
D.d++;
答案问询微信:424329

(12)下面4项,不属于用链表表示线性表的优点的是()
A.便于随机存取
B.花费的存储空间较顺序存储少
C.便于插入和删除操作
D.数据元素的物理顺序与逻辑顺序相同
答案问询微信:424329

(13)合法的标识符()。
A.可以由字母构成
B.第一个字母可以为数字
C.第一个字母可以为下划线
D.最后一个字母必须为字母
答案问询微信:424329

(14)下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。
A.只能是0或1
B.只能是0或非0正数
C.可以是整型或字符型数据
D.可以是任何类型的数据
答案问询微信:424329

(15)关于while语句与do-while语句,以下正确的是()。
A.while是当型结构
B.do-while是直到型结构
C.两者有区别
D.两者无区别
答案问询微信:424329

(16)以下选项中不合法的字符常量是()。
A."B"
B.'10'
C.68
D.D
答案问询微信:424329

(17)下列哪些是算法的描述方法( )
A.自然语言描述法
B.流程图描述法
C.伪代码描述法
D.N-S流程图描述法
答案问询微信:424329

(18)以下对C语言中的函数描述不正确的有()。
A.可以嵌套定义,不可以嵌套调用
B.不可以嵌套定义,可以嵌套调用
C.可以嵌套定义,也可以嵌套调用
D.嵌套定义和嵌套调用都不允许
答案问询微信:424329

(19)以下可以定义为用户标识符的有()。
A.scanf
B.short
C._3com_
D.int
答案问询微信:424329

(20)t为int类型,进入下面的循环之前,t的值为0do{………}while(t==1);则以下叙述中正确的是()
A.循环控制表达式的值为0
B.循环控制表达式的值为1
C.循环控制表达式合法
D.其他说法都不对
答案问询微信:424329

(21)对do-while语句描述正确的是()
A.do-while语句构成的循环可以使用break语句退出循环
B.do-while语句构成的循环必须使用break语句退出循环
C.do-while语句构成的循环,当while中的表达式值为非零时结束循环
D.do-while语句构成的循环,当while中的表达式值为零时结束循环
答案问询微信:424329

(22)以下4个选项中,可以看作是一条语句的有()
A.{;}
B.a=0,b=0,c=0;
C.if(a>0);
D.if(b==0) m=1;n=2;
答案问询微信:424329

(23)以下描述正确的是()
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将为形参分配内存单元
D.调用函数时,实参与形参的类型必须一致
答案问询微信:424329

(24)下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。
A.只能是0或1
B.只能是0或非0正数
C.a>=10
D.可以是任何类型的数据
答案问询微信:424329

(25)以下用户标识符,其中合法的是()
A.return
B.f2_G3
C.A3-3
D.abc
答案问询微信:424329

判断题:
(1)c程序是由c文件构成,而c文件是由函数构成()
答案问询微信:424329

(2)在Turbo C中,整型数据在内存中占2个字节。( )
答案问询微信:424329

(3)静态局部变量只在本函数内可用。( )
答案问询微信:424329

(4)PI可作为标识符使用。( )
答案问询微信:424329

(5)C语言采用解释方式将源程序转换为二进制的目标代码。( )
答案问询微信:424329

(6)数组名代表数组的起始地址。()
答案问询微信:424329

(7)构造类型数据是由基本类型按一定的规律构造而成的。( )
答案问询微信:424329

(8)在C源程序中,/*与*/之间的注释信息也被编译,但对程序运行运果不发生影响。( )
答案问询微信:424329

(9)全局变量的作用域一定比局部变量的作用域范围大。()
答案问询微信:424329

(10)若a=2,b=-4;则执行a||b++后,b为-3。()
答案问询微信:424329

(11)C中的变量必须“先定义,后使用”,函数也不例外。()
答案问询微信:424329

(12)C程序中,当调用函数时,由实参把值传递给形参,调用结束后,再由形参把值传回给实参。()
答案问询微信:424329

(13)#define命令是在编译之前处理的。()
答案问询微信:424329

(14)C语言中没有依存于硬件的I/O语句。( )
答案问询微信:424329

(15)格式字符%md中的m只能为正,不能为负。()
答案问询微信:424329

(16)若定义char *str;则str="BOOK";是正确的。()
答案问询微信:424329

(17)字符常数和字符串常数的存储是相同的,都是以字符的ASCII码值进行存放。( )
答案问询微信:424329

(18)一个包含命令include可以包含几个头文件。()
答案问询微信:424329

(19)在C的if语句中,用作判断的表达式只能是关系表达式或逻辑表达式。()
答案问询微信:424329

(20)外部变量是全部变量。( )
答案问询微信:424329

(21)continue语句可用于switch语句,也可用于for、while和do循环语句中。()
答案问询微信:424329

(22)C程序是由函数构成的,每一个函数完成相对独立的功能。( )
答案问询微信:424329

(23)break语句可用于switch语句,也可用于for、while和do循环语句中。( )
答案问询微信:424329

(24)一个C源程序可以由一个main()函数和若干个其它函数组成。( )
答案问询微信:424329

(25)自增运算符和自减运算符的结合方向也是“自左向右”。( )
答案问询微信:424329

论述题:
(1)。
答案问询微信:424329

提供优质的教育资源

公众号: 超前自学网