C语言期末考试题库第一章 c语言基.docx
《C语言期末考试题库第一章 c语言基.docx》由会员分享,可在线阅读,更多相关《C语言期末考试题库第一章 c语言基.docx(29页珍藏版)》请在冰点文库上搜索。
![C语言期末考试题库第一章 c语言基.docx](https://file1.bingdoc.com/fileroot1/2023-6/5/8abe1ecd-9154-42bf-a7c5-be495aae5277/8abe1ecd-9154-42bf-a7c5-be495aae52771.gif)
C语言期末考试题库第一章c语言基
一、单项选择
1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为().
A、关系运算,赋值运算,算术运算
B、算术运算,关系运算,赋值运算
C、算术运算,赋值运算,关系运算
D、关系运算,算术运算,赋值运算
答案:
B
2.下述正确的C语言常量是:
().
A、E2
B、3e-3
C、1.5E2.5
D、5.0E
答案:
B
3.使用共用体变量,不可以().
A、进行动态管理
B、节省存储空间
C、同时访问所有成员
D、简化程序设计
答案:
C
4.为表示关系x>=y>=z,应使用C语言表达式为:
()
A、(x>=y)&(y>=z)
B、(x>=y>=z)
C、(x>=y)&&(y>=z)
D、(x>=y)AND(y>=z)
答案:
C
5.以下程序的输出结果是().
main()
{charstr[]="ABCD",*p=str;printf("%s\n",p);}
A、68
B、ABCD
C、不确定的值
D、字符D的地址
答案:
B
6.chara[10];不能将字符串"abc"存储在数组中的是().
A、a="abc";
B、a[0]=0;strcat(a,"abc");
C、inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;
D、strcpy(a,"abc");
答案:
A
7.fscanf函数的正确调用形式是().
A、fscanf(文件指针,格式字符串,输入表列);
B、fscanf(格式字符串,文件指针,输出表列);
C、fscanf(fp,格式字符串,输出表列);
D、fscanf(格式字符串,输出表列,fp);
答案:
A
8.下列数组说明中正确的是().
A、intarray[][]={1,2,3,4,5,6,7,8,9,10};
B、intarray[][][5]={1,2,3,4,5,6,7,8,9,10};
C、intarray[][4]={1,2,3,4,5,6,7,8,9,10};
D、intarray[3][]={1,2,3,4,5,6,7,8,9,10};
答案:
C
9.以下选项中,与k=n++完全等价的表达式是().
A、n=n+1,k=n
B、k+=n+1
C、k=++n
D、k=n,n=n+1
答案:
D
10.针对下列程序段回答问题().
for(t=1;t<=100;t++)
{
scanf("%d",&x);
if(x<0)continue;
printf("%3d",t);
}
A、printf函数永远也不执行
B、当x<0时整个循环结束
C、x>=0时什么也不输出
D、最多允许输出100个非负整数
答案:
D
11.以下正确的字符串常量是()
A、"\\\"
B、'A'
C、'abc'
D、OlympicGames
答案:
A
12.如下说法不正确的是().
A、若a为真b为假,则a||b为真
B、若a为真b为假,则a&&b为假
C、若a为真b为假,则!
a-1&&b为真
D、若a为真,则!
a为假
答案:
C
13.C语言中,用于结构化程序设计的三种基本结构是().
A、for,while,do-while
B、顺序结构,选择结构,循环结构
C、if,switch,break
D、if,for,continue
答案:
B
14.若有以下的定义:
intt[3][2];能正确表示t数组元素地址的表达式是().A、t[3]
B、t[2]
C、&t[3][2]
D、&t[1]
答案:
B
15.下列运算符中优先级最高的是().
A、<
B、&&
C、+
D、!
=
答案:
C
16.C语言程序中,必须有的函数是().
A、main()
B、#include"stdio.h"
C、scanf
D、printf
答案:
A
17.已定义chara[10];和char*p=a;,下面的赋值语句中正确的是().A、*p="Turboc";
B、p="Turboc";
C、a[10]="Turboc";
D、a="Turboc";
答案:
B
18.以下叙述正确的是().
A、可以把if定义为用户标识符,但不能把define定义为用户标识符B、define和if都不能定义为用户标识符
C、可以把define和if定义为用户标识符
D、可以把define定义为用户标识符,但不能把if定义为用户标识符答案:
D
19.若已定义x为int类型变量,下列语句中,说明指针变量p的正确语句是().
A、*p=*x;
B、int*p=x;
C、int*p=&x;
D、intp=&x;
答案:
C
20.以下叙述中,正确的是().
A、花括号"{"和"}"只能作为函数体的定界符
B、构成C程序的基本单位是函数,所有函数名都可以由用户命名C、分号是C语句之间的分隔符,不是语句的一部分
D、C程序中,注释部分可以出现在程序中,任意合适的地方
答案:
D
21.以下能对二维数组a进行正确初始化的语句是().
A、inta[][3]={{1,2,3},{4,5,6}};
B、inta[2][]={{1,0,1},{5,2,3}};
C、inta[2][4]={{1,2,3},{4,5},{6}};
D、inta[][3]={{1,0,1}{},{1,1}};
答案:
A
22.C语言中,double类型数据占().
A、8个字节
B、4个字节
C、2个字节
D、1个字节
答案:
A
23.经过下列的语句intj,a[10],*p=a;定义后,下列语句中,合法的是().A、p=a[5];
B、p=a[2]+2;
C、p=p+2;
D、p=&(j+2);
答案:
C
24.定义chars[10],*p=s;,则下面编译不能通过的语句是().
A、s=p+s;
B、s[2]=p[4];
C、p=s+5;
D、*p=s[0];
答案:
A
25.以下函数调用语句中,实参的个数是().
exce((v1,v2),(v3,v4,v5),v6);
A、3
B、4
C、5
D、6
答案:
A
26.若x=2,y=3,则x||y的结果是()
A、0
B、3
C、2
D、1
答案:
D
27.已知x=43,ch='A',y=0;,则表达式(x>=y&&ch<'B'&&!
y)的值是().A、"假"
B、语法错
C、0
D、1
答案:
D
28.下面四个选项中均是不合法的浮点数的选项是().
A、-e3.2341e3
B、1232e4.2.e5
C、-.18123e40.0
D、160.0.12e3
答案:
B
29.以下函数调用语句中,实参的个数是().
func((e1,e2),(e3,e4,e5));
A、3
B、5
C、语法错误
D、2
答案:
D
30.已定义:
floatx=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().
y+x=4.62,y-x=2.12
A、printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);
B、printf("y+x=%f,y-x=%f\n",y+x,y-x);
C、printf("y+x=%6f,y=%6f\n",y+x,y-x);
D、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);
答案:
A
31.执行下面程序段后,ch的值是().
charch='a';
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch;
A、A
B、z
C、Z
D、a
答案:
D
32.在C语言的函数中,下列正确的说法是().
A、数组名不能作形参
B、可以有也可以没有形参
C、形参必须是变量名
D、必须有形参
答案:
B
33.以下正确的描述是().
A、在循环中,break语句不能独立出现
B、只能用continue语句来终止本次循环
C、goto语句只能用于退出多层循环
D、switch语句中,不能出现continue语句
答案:
B
34.C语言中,运算对象必须是整型的运算符是().
A、〈=
B、%=
C、=
D、/
答案:
B
35.下面不正确的字符串常量是().
A、"0"
B、""
C、"12'12"
D、'abc'
答案:
D
36.fwrite函数的一般调用形式是().
A、fwrite(buffer,count,size,fp);
B、fwrite(fp,count,size,buffer);
C、fwrite(fp,size,count,buffer);
D、fwrite(buffer,size,count,fp);
答案:
D
37.以下定义语句中错误的是().
A、inta[]={1,2};
B、intn=5,a[n];
C、char*a[3];
D、chars[10]="test";
答案:
B
38.下列正确的标识符是().
A、%y
B、a+b
C、6a
D、_do
答案:
D
39.C语言源程序的基本单位是().
A、子程序
B、过程
C、标识符
D、函数
答案:
D
40.若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时,()是正确的输入
A、203040
B、2030,40
C、20,30,40
D、20,3040
答案:
C
41.设有如下程序,请选择正确答案().
#include
main()
{int**k,*j,i=100;
j=&i,k=&j;
printf("%d\n",**k);
}
A、100
B、i的地址
C、j的地址
D、运行错误
答案:
A
42.若定义:
inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为().A、a的地址
B、无确定值
C、511
D、512
答案:
C
43.以下叙述中,不正确的是().
A、C程序中的#include和#define均不是C语句
B、在C程序中,赋值运算符的优先级最低
C、在C程序中,j++;是一条赋值语句
D、一个好的程序应该有详尽的注释
答案:
B
44.下面叙述中错误的是().
A、若一个函数没有return语句,则什么值也不会返回
B、一般来说,函数的形参和实参的类型要一致
C、函数的形式参数,在函数未被调用时就不被分配存储空间
D、若函数的定义出现在主调函数之前,则可以不必再加说明答案:
A
45.设有如下程序段:
intk=10;
while(k==0)
k--;
则下述说明中正确的是().
A、循环体执行一次
B、死循环
C、循环体一次也不执行
D、循环体执行10次
答案:
C
46.表示关系x>0且y<=10的C语言表达式为().
A、(x<=0)AND(y<=10)
B、(x>0)&&(y<=10)
C、x>0,y<=10
D、(x<=0)&(y<=10)
答案:
B
47.以下叙述不正确的是().
A、C程序的基本组成单位是函数
B、在C程序中,注释说明只能位于一条语句的后面
C、一个C源程序可由一个或多个函数组成
D、一个C源程序必须包含一个main()函数
答案:
B
48.C语言提供的合法的数据类型关键字是().
A、float
B、unsigned
C、char
D、integer
答案:
B
49.所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:
().
A、6
B、7
C、8
D、2
答案:
C
50.以下符合C语言语法的赋值表达式是().
A、d=9+e+f=d+9
B、d=9+e,e++,d+9
C、d=9+e
D、d=9+e++=d+7
答案:
C
51.下面对函数的叙述,正确的是().
A、函数中无论是否有return语句,都能返回正确值
B、函数中没有return语句,说明不带回值
C、函数不能嵌套定义
D、函数的返回值是通过return语句获得的
答案:
C
52.整型变量x=1,y=3,经下列计算后,x的值不等于6的是().
A、x=(x=1+2,x*2)
B、x=9-(--y)-(--y)
C、
D、x=y>2?
6:
5
答案:
B
53.设x,y,z,t均为整型变量,则执行以下语句后,t的值为:
()
x=y=z=1;
t=++x||++y&&++z;
A、1
B、不定值
C、2
D、0
答案:
A
54.下列字符序列中不可用作C语言标识符的是().
A、a_1
B、#ab
C、symbol
D、b70
答案:
B
55.C语言执行程序的开始执行点是().
A、包含文件中的第一个函数
B、程序中,第一个函数
C、程序中的main()函数
D、程序中,第一条可以执行语言
答案:
C
56.下列运算符优先级最低的是().
A、&&
B、+
C、=
D、!
答案:
C
57.下面所列的语句行中能正确进行赋字符串操作的语句行是().A、charst[4][5]={"ABCDE"};
B、chars[5]={'A','B','C','D','E'};
C、char*s;scanf("%c",s);
D、char*s;s="ABCDE";
答案:
D
58.以下正确的函数定义形式是().
A、doublefun(intx,inty)
B、doublefun(intx;inty)
C、doublefun(intx,y);
D、doublefun(intx,inty);
答案:
A
59.下列变量中合法的是().
A、$ABC
B、B.C.Tom
C、3a6b
D、_6a7b
答案:
D
60.以下标识符中可以作为用户函数名的是().
A、union
B、int
C、struct
D、go_to
答案:
D
61.判断两个字符串是否相等,正确的表达方式是().
A、while(strcmp(s1,s2)=0)
B、while(strcmp(s1,s2)==0)
C、while(s1==s2)
D、while(s1=s2)
答案:
B
62.下面各语句中能正确进行赋字符串操作的语句是().
A、charst[][]={"ABCDE"};
B、chars2[6]={'A','B','C','D','E'};
C、chars1[5][]={"ABCDE"};
D、chars[5]={'A','B','C','D','E'};
答案:
B
63.下列数据中属于"字符串常量"的是().
A、'ABC'
B、ABC
C、"ABC"
D、'A'
答案:
C
64.C语言中的文件的存储方式有().
A、可以顺序存取,也可随机存取
B、只能随机存取(或直接存取)
C、只能顺序存取
D、只能从文件的开头进行存取
答案:
A
65.putchar函数可以向终端输出一个().
A、字符或字符型变量值
B、整型变量表达式值
C、实型变量值
D、字符串
答案:
A
66.下面叙述中正确的是().
A、声明函数时必须明确其参数类型和返回类型
B、函数可以返回一个值,也可以什么值也不返回
C、空函数在不完成任何操作,所以在程序设计中没有用处
D、对于用户自己定义的函数,在使用前必须加以声明
答案:
B
67.以下标识符中不能作为合法的C用户定义标识符的是().
A、_123
B、void
C、if
D、a3_b3
答案:
B
68.将字符串Turbo赋给字符数组word,则下面错误的说明语句是().A、charword[]={"Turbo\0"};
B、charword[]="Turbo\0";
C、charword[]={'T','u','r','b','o','\0'};
D、charword[]='Turbo\0';
答案:
D
69.用下面的scanf函数输入数据,使得i=10,j=15,选择正确的键盘输入方法:
().
(用[CR]表示回车)
main()
{
inti,j;
scanf("i=%d,j=%d",&i,&j);
}
A、i=10,j=15[CR]
B、i=10Uj=15[CR]
C、10U15[CR]
D、10,15[CR]
答案:
A
70.跳过当前循环体内容,继续执行下一次循环的语句是()
A、continue语句
B、return语句
C、break语句
D、空语句
答案:
A
71.设有以下定义:
inta[10]={1,2,3,4,5,6,7,8,9,10};
int*p=a;
则数值为6的表达式是().
A、p+5
B、*p+6
C、*p+=5
D、*(p+6)
答案:
C
72.以下程序段执行后输出的结果是().
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+4));
A、不确定的值
B、字符'D'的地址
C、68
D、0
答案:
D
73.用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法().
(用"[CR]"表示回车,U表示空格)
main()
{inti,k;
scanf("i=%d,k=%d",&i,&k);
}
A、10U15[CR]
B、i=10,k=15[CR]
C、i=10[CR]k=15[CR]
D、10,15[CR]
答案:
B
74.设有如下的程序段:
charstr[]="Hello";
char*ptr;
ptr=str;
执行完上面的程序段后,*(ptr+5)的值为().
A、'\0'
B、'o'
C、'o'的地址
D、不确定的值
答案:
A
75.定义inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,其中,0≤i≤9,则对a数组元素的引用不正确的是().
A、a[p-a]
B、*(&a[i])
C、p[i]
D、*(*(a+i))
答案:
D
76.以下字符中,不是转义字符的是().
A、'\b'
B、'\\'
C、'\c'
D、'\a'
答案:
C
77.设a为整型变量,不能正确表达数学关系10()
A、10B、!
(a<=10)&&!
(a>=15)
C、a>10&&a<15
D、a==11||a==12||a==13||a==14
答案:
A
78.在C语言中,存储类型为()的变量只在使用它们时才占用存储空间.A、static和auto
B、register和auto
C、register和extern
D、static和register
答案:
B
79.已知键盘输入a=4,b=3,下面程序输出的结果是().
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
A、13
B、9
C、16
D、15
答案:
C
80.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,
则文件方式字符串应是().
A、"ab"
B、"wb+"
C、"rb+"
D、"ab++"
答案:
B
81.设有如下说明和语句,请选出哪个是对c数组元素的正确引用().intc[4][5],(*cp)[5];
cp=c;
A、*(*cp+2)
B、*(cp+3)
C、cp+1
D、*(cp+1)+3
答案:
A
82.以下标识符中不能作为合法的C用户定义标识符的是().
A、for
B、printf
C、sizeof
D、WORD
答案:
C
83.在定义构造数据类型时,不能().
A、末尾不写分号
B、说明变量
C、初始化
D、说明存储类型
答案:
A
84.以下叙述中,错误的是().
A、用户所定义的标识符应尽量做到"见名知意"
B、用户所定义的标识符必须以字母或下划线开头
C、用户所定义的标识符允许使用关键字
D、用户定义的标识符中,大,小写字母代表不同标识
答案:
C
85.选择正确的输入语句().:
(其中:
charstring[20];)使得string的内容为"Iamstudent".
A、scanf("%s",string);
B、scanf("%c",&string);
C、scanf("%s",&string);
D、gets(string);
答案:
D
86.以下选项中,合法的实型常数是().
A、.2E0
B、1.3E
C、E-3
D、5E2.0
答案:
A
87.若inta=2,则执行完表达式a-=a+=a*a后,a的值是().
A、-4
B、0
C、-8
D、-2
答案:
B
88.设a,b和c都是int型变量,且a=3,b=4,c=5,下面表达式中值为0的表达式是().
A、a<=b
B、'a'&&'b'
C、!
((a
c||1)
D、a||b+a&&b-c
答案:
C
89.定义charb[5],*p=b;,则能正确赋值的语句是().
A、*p="abcd";
B、p="abcd";
C、*b="abcd";
D、b="abcd";
答案:
B
90.能正确表示a>=10或a<=0的关系表达式是:
()
A、a>=10||a<=0
B、A>=10ora<=0
C、a>=10&a<=0
D、a>=10|a<=0
答案:
A
91.设有如下定义:
structsk{inta;floatb;}data,*p;
若要使p指向data中的a域,正确的赋值语句是().
A、p=(structsk*)data.a;
B、p=&data.a;
C、*p=data.a;
D、p=(structsk*)&data.a;
答案:
D
92.若变量已正确定义且k的值是4,计算表达式(j=4,k--)后,j和k的值为().
A、j=3,k=3
B、j=3,k=4
C、j=4,k=4
D、j=4,k=3
答案:
D
93.当说明一个结构体变量时系统分配给它的内存是().
A、结构中,第一个成员所需内存量
B、成员中,占内存量最大者所需的容量
C、结构中,最后一个成员所需内存量
D、各成员所需内存量的总和
答案:
D
94.int(*p)[6];它的含义为().
A、具有6个元素的一维数组
B、定义了一个指向具有6个元素的一维数组的指针变量
C、指向整型指针变量
D、指向6个整数中的一个的地址
答案:
B
95.若有说明语句:
charc='\72';,则变量c().
A、包含1个字符
B、说明不合法,c的值不确定
C、包含2个字符
D、包含3个字符
答案:
A
9