西安交通大学《程序设计基础》期末考试必备题集
奥鹏期末考核
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='