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

奥鹏期末考核

126523–西安交通大学《程序设计基础(高起专)》奥鹏期末考试题库合集

单选题:
(1)执行以下程序段后,输出结果和a的值是()。Int a=10;printf("%d",a++);
A.10和10
B.10和11
C.11和10
D.11和11
答案问询微信:424329

(2)
答案问询微信:424329

(3)下面程序:#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(&p,a); printf("%dn",*p);getch();}输出结果是( )
A.1
B.7
C.9
D.11
答案问询微信:424329

(4)若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为()。
A.scanf("%d",p);
B.scanf("%d",&p);
C.scanf("%d",*p);
D.scanf("%d",**p);
答案问询微信:424329

(5)对于如下的表达式:int a[3][4],*p;p=*a;执行p++操作之后,*p表示取( )的内容。
A.a[0][0]
B.a[1][0]
C.a[1][1]
D.a[0][1]
答案问询微信:424329

(6)下面关于do-while语句和while语句说法正确的是( )
A.while语句和do-while语句肯定都要执行
B.两者运行结果不同
C.do-while在判断条件之前先执行循环体一次
D.while语句至少执行一次
答案问询微信:424329

(7)设:x=9;y=++x;,则产生的结果是( )
A.x=9;y=9;
B.x=10;y=10;
C.x=9;y=10;
D.x=10;y=9;
答案问询微信:424329

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

(9)以下叙述中正确的是()。
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占编译时间
D.在以下定义中CR是称为"宏名"的标识符#defineCR045
答案问询微信:424329

(10)以下对C语言函数的描述中,正确的是()。
A.C程序必须由一个或一个以上的函数组成
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个程序文件中
答案问询微信:424329

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

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

(13)
答案问询微信:424329

(14)下列四个选项中,均是C语言关键字的选项是()。
A.auto、enum、include
B.switch、typedef、continue
C.signed、union、scanf
D.if、struct、type
答案问询微信:424329

(15)以下语句中,不能实现回车换行的是()。
A.printf("n");
B.putchar("n");
C.fprintf(stdout,"n");
D.fwrite("n",1,1,stdout);
答案问询微信:424329

(16)应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。
A.fclose()
B.close()
C.fread()
D.fwrite
答案问询微信:424329

(17)关于数组,下列说法错误的是( )
A.在任何一个数组中,数组元素的类型都是一致的
B.常量表达式不允许是变量
C.一维数组中的各个元素在内存中是按顺序存放的
D.C语言运行时要检查数组的边界,即下标值超界时,系统会报错
答案问询微信:424329

(18)可将C源程序存在磁盘上,还可将数据按数据类型分别以()的形式存在磁盘上。
A.内存
B.缓冲区
C.文件
D.寄存器
答案问询微信:424329

(19)若x=2,y=3则x&y的结果是()。
A.0
B.2
C.3
D.5
答案问询微信:424329

(20)
答案问询微信:424329

(21)关于形式参数,下面说法错误的是( )
A.对于形参,虽然定义了它,只有当函数被调用时,形参才在内存中开辟空间
B.调用结束后,形参自动从内存中被释放掉
C.在函数定义中,可以不给出形参类型,调用的时候再定义。
D.实参与形参的关系是赋值与被赋值的关系
答案问询微信:424329

(22)下面有关for循环的正确描述是()。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案问询微信:424329

(23)
答案问询微信:424329

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

(25)
答案问询微信:424329

(26)若有以下程序#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

(27)下列程序段的输出结果为()。Float k=0.8567;printf("%06.1d%%",k*100);
A.0085.6%%
B.0085.7%%
C.0085.6%
D..857
答案问询微信:424329

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

(29)int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。
A.2
B.3
C.4
D.不一定
答案问询微信:424329

(30)在计算机中,一个字节所包含二进制位的个数是( )
A.2
B.4
C.8
D.16
答案问询微信:424329

(31)以下标识符中,不能作为合法的C用户定义标识符的是()。
A.putchar
B._double
C._123
D.INT
答案问询微信:424329

(32)
答案问询微信:424329

(33)以下不能定义为用户标识符的是( )
A.scanf
B.Void
C._3com_
D.int
答案问询微信:424329

(34)若有说明.int i,j=2,*p=,则能完成i=j赋值功能的语句是()。
A.i=*p;
B.*p=*
C.i=
D.i=**p;
答案问询微信:424329

(35)以下的选择中,正确的赋值语句是()。
A.a=1,b=2
B.j++
C.a=b=5;
D.y=int(x)
答案问询微信:424329

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

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

(38)
答案问询微信:424329

(39)语句while(!E);中的表达式!E等价于()。
A.E==0
B.E!=1
C.E!=0
D.E==1
答案问询微信:424329

(40)以下程序的输出结果是( )int f(){static int i=0;int s=1;s+=i; i++;return s;}main(){ int i,a=0;for(i=0;i5;i++) a+=f();printf("%dn",a);}
A.20
B.24
C.25
D.15
答案问询微信:424329

(41)以下运算符中优先级最低的是()。
A.&&
B.&
C.||
D.|
答案问询微信:424329

(42)以下程序中,while循环的循环次数是( )main(){ int i=0;while(i10){ if(i1) continue;if(I==5) break;i++;}……}
A.1
B.10
C.6
D.死循环,不能确定次数
答案问询微信:424329

(43)下列程序的输出结果是()。main(){int x=1,y=0,a=0,b=0;switch(x){case1.switch(y){case0.a++;break;case1.b++;break;}case2.a++;b++;break;case3.a++;b++;break;}printf("a=%d,b=%dn",a,b);}
A.a=1,b=0
B.a=2,b=1
C.a=1,b=1
D.a=2,b=2
答案问询微信:424329

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

(45)以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
答案问询微信:424329

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

(47)若二维数组a有m列,则在a[i][j]前的元素个数为()
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
答案问询微信:424329

(48)
答案问询微信:424329

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

(50)以下运算符中,优先级最高的运算符是()
A.*=
B.>=
C.(类型)
D.+
答案问询微信:424329

(51)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
答案问询微信:424329

(52)若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为()
A.printf("%d",*(a+5));
B.printf("%d",p[5]);
C.printf("%d",*(p+5));
D.printf("%d",*p[5]);
答案问询微信:424329

(53)下列程序的输出结果是()。
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;break;
}
printf("a=%d,b=%dn",a,b);
}
A.a=1,b=0
B.a=2,b=1
C.a=1,b=1
D.a=2,b=2
答案问询微信:424329

(54)下列选项中正确的语句组是()
A.char s[8]; s={"Beijing"};
B.char *s; s={"Beijing"};
C.char s[8]; s="Beijing";
D.char *s; s="Beijing";
答案问询微信:424329

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

多选题:
(1)以下关于数组描述错误的是()。
A.数组的大小是固定的,但可以有不同的类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同的类型的数组元素
答案问询微信:424329

(2)
答案问询微信:424329

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

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

(5)以下叙述中正确的是()。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main()函数
C.C源程序的基本组成单位是函数
D.在C源程序中,注释说明只能位于一条语句的最后
答案问询微信:424329

(6)以下表达式中正确的是()
A.c=c+1
B.a+=1
C.xy?x.y
D.a-+=3
答案问询微信:424329

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

(8)以下不正确的叙述是
A.在C程序中,每行只能写一条语句
B.若a是实型变量,C程序中允许赋值A=10,因此实型变量中允许存放整型
C.在C程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
答案问询微信:424329

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

(10)关于for(表达式1,表达式2,表达式3)循环,以下正确的是()。
A.三个表达式都不可省略
B.表达式1可以省略
C.表达式2可以省略
D.表达式3可以省略
答案问询微信:424329

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

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

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

(14)能正确表示逻辑关系:"a≥10"的C语言表达式是()。
A.a≥10
B.!(a10)
C.a=10
D.a10
答案问询微信:424329

(15)
答案问询微信:424329

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

(17)C语言中三种基本的类型为()。
A.int
B.char
C.float
D.struct
答案问询微信:424329

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

(19)在定义int a[2][3];之后,对a的引用正确的有()。
A.a[0][2]
B.a[1,3]
C.a[12][!1]
D.a[2][0]
答案问询微信:424329

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

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

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

(23)下面那些为合法整型常量()
A.190
B.0xf
C.0765
D.0xk
答案问询微信:424329

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

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

(26)以下叙述正确的是()
A.C语言严格区分大小写英文字母
B.C语言用";"作为语句分隔符
C.C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上
D.可以使用/*…*/对C程序中的任何部分作注释
答案问询微信:424329

(27)以下选项中合法的表达式是()
A.0<=x<100
B.i=j==0
C.(char)(65+3)
D.x+1=x+1
答案问询微信:424329

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

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

(30)能正确表示逻辑关系:"a≥10"的C语言表达式是()。
A.a≥10
B.!(a<10)
C.a>=10
D.x4=1+2=3;
答案问询微信:424329

(31)正确的if语句形式是()
A.if (x>y && x!=y);
B.if (x==y) x+=y;
C.if (x!=y) scanf("%d",&x) else scanf("%d",&y);
D.if (x<y) {x++;y++;}
答案问询微信:424329

判断题:
(1)若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是p=n;。()
答案问询微信:424329

(2)
答案问询微信:424329

(3)用数组名作为实参时,把实参数组的起始地址传递给形参数组,因此形参数组和实参数组占用同一段内存单元,改变形参数组的值,也就改变了实参数组的值。()
答案问询微信:424329

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

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

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

(7)表达式 ’a’ 和 “a” 是不同的,前者长度为1,后者长度为2。()
答案问询微信:424329

(8)若a=7,b=5;则执行a&&b++后,b为6。()
答案问询微信:424329

(9)C语言既可以用来写系统软件,也可以用来写应用软件。()
答案问询微信:424329

(10)数组名是指标常量,不需要也不能为其赋值;指针是变量,使用前需对其赋值。()
答案问询微信:424329

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

(12)在C中能代表逻辑值“假”的是0。()
答案问询微信:424329

(13)函数的实参可以传递给形参,形参也可以传递给实参。()
答案问询微信:424329

(14)用户标识符中可以出现下划线和中划线(减号)。()
答案问询微信:424329

(15)一个C源程序只能有一个main()函数。
答案问询微信:424329

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

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

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

(19)
答案问询微信:424329

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

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

简答题:
(1)
答案问询微信:424329

(2)程序填空题求1+2!+3!++20!的和。#include stdio.hvoid main(){ float n,s=0,t=1; for( ① ) { ② ③ } printf(1+2!+3!…+20!=%en,s); getch();}
答案问询微信:424329

其他题:
(1)程序设计题用指针设计一个可以计算字符串长度的程序。
答案问询微信:424329

提供优质的教育资源

公众号: 超前自学网