以下是小编为大家收集的C语言笔试选择题,本文共5篇,希望能够帮助到大家。

篇1:C语言笔试选择题
以下程序的运行结果是:
#include “stdio.h”
main ,, ¥
{int a,b,d= 241;
a=d/100 % 9
b= (一1)&&(一1);
printf(“%d,%d”,a ,b);
}
A)6,1 B)2,1 C) 6,0 D)2,0
C
执行以下语句后a的值为:
int a,b,c;
a= b= c= 1;
++a||++b&&++c
A)错误 B) 0 C) 2 D) 1
A
执行以下语句后b 的值为:
int a=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
A) 6 B) 0 C) 1 D) 4
C
以下不正确的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
A
篇2:C语言笔试选择题
*1
A
一个C程序的执行是从_____。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
*2
C
以下叙述正确的是:
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
*3
D
以下叙述不正确的是。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
*4
C
C语言规定:在一个源程序中,main函数的位置 。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以仸意
D)必须在最后
*5
B
一个C语言程序是由
A)一个主程序和若干子程序组成 B)函数组成
C)若干过程组成 D)若干子程序组成
*6
A
在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为
A)char
B)char=int<1ong int<=float
C)char< int <1ong int=float=double
D)char=int =1ong int<=float
*7
C
若x,i,j和k都是int型变量,则执行下面表达式后x的值为
x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
*8
B
假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:
A)7 B)8 C)6 D)2
*9
A
下列四组选项中,均不是C语言关键字的选项是
A)define B)getc C)include D)while
iF char scanf go
type printf case pow
*10
B
下面四个选项中,均是C语言关键字的选项是
A)auto B)switch C)signed D)if
enum typedef union struct
include continue scanf type
*11
C
下面四个选项中,均是不合法的用户标识符的选项是。
A) A B)float C)b-a D)-123
P_0 1a0 goto temp
do -A int INT
*12
C
C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A)必须为字母 B)必须为下划线
C)必须为字母或下划线 D)可以是字母,数字和下划线中仸一种字符
*13
A
下面四个选项中,均是合法整型常量的选项是:
A)160 B)-0xcdf C)-01 D)-0x48a
-0xffff 01a 986, 012 2e5
011 0xe 0668 0x
*14
D
下面四个选项中,均是不合法的整型常量的选项是:
A)--0f1 B)-0Xcdf C)-018 D)-0x48eg
-0xffff 017 999 -068
0011 12,456 5e2 03f
*15
B
下面四个选项中,均是不合法的浮点数的选项是
A) 160. B) 123 C)-.18 D)-e3
0.12 2e4.2 123e4 .234
e3 .e5 0.0 1e3
*16
b
下面四个选项中,均是合法浮点数的选项是
A) +le+1 B)-.60 C) 123e D)-e3
5e-9.4 12e-4 1.2e-.4 .8e4
03e2 -8e5 +2e-1 5.e-0
*17
A
下面四个选项中,均是合法转义字符的选项是
A)'¥'' B)'¥' C)'¥018' D)'¥¥0'
'¥¥' '¥017' '¥f' '101'
'¥n' '¥“' 'xab' 'xlf'
*18
B
下面四个选项中,均是不合法的转义字符的选项是
A)'¥'' B)'¥1011' C)'¥011' D)'¥abc'
'¥¥' '¥' '¥f' '¥101'
'¥xf' '¥a' '¥}' 'xlf'
*19
C
下面正确的字符常量是:
A)”a“ B)'¥¥'' C)'W' D)''
*20
d
下面四个选项中,均是不正确的八进制数或十六进制数的选项是。
A) 016 B)oabc C)010 D) 0a12
0x8f 017 -0x11 7ff
018 0x8 0x16 -123
*21
C
下面四个选项中,均是正确的八进制数或十六进制数的选项是。
A)一10 B)0abc C)0010 0) 0al2
0x8f -017 -0x11-0xl23
-011 0xc 0xf1 -0x8
*22
d
下面四个选项中、均是正确的数值常量或字符常量的选项是:
A)0.0 日)”a“ C)'3'D)+001
0f 3.9E-2.5 011 0xabcd
8.9e lel0xFFOO 2e2
'&' '¥''' 0a 50.
*23
A
下面不正确的字符串常量是。
A)'abc' B)”12'12“ C)”0“ D)”“
*24
c
若有代数式3ae/bc,则不正确的C语言表达式是:
A) a/b/c*e*3 B)3*a*e/b/c
C)3*a*e/b*c D)a*e/c/b*3
*25
A
已知各变量的类型说明如下:
int k,a,b;
unsigned long w= 5;
double x=1.42;
则以下不符合C语言语法的表达式是:
A) x%(-3) B) w+=-2
C)k=(a=2,b=3,a十b) D)a+= a-=(b=4)*(a=3)
*26
A
已知各变量的类型说明如下:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是:
A) a+=a-=(b= 4)*(a=3)
B)a=a*3=2
C) x%(-3)
D)y=f1oat(i)
*27
D
以下不正确的叙述是
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
篇3:C语言笔试选择题
设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是
A)'y'&&'y'
B)x < =y
C) x||y+z&&y-z
D) !(x
C
已知x =43,ch='A',y=0则表达式(x >= y && ch<'B'&&!Y) 的值是
A)0 B)语法错 C)1 D)”假“
C
若希望当A的值为奇数时,表达式的值为”真“,A的值为偶数 表达式的值
为”假“。则以下不能满足要求的表达式是:
A) A%2= =1 B)!(A%2 = =0) C)!(A%2) D) A%2
B
设有 int a = 1,b=2,c =3, d =4, m=2, n=2;
执行(m= a>b)&&(n=c>d)后n的值为:
A)1B )2 C)3 D)4
D
篇4:c语言笔试题目及答案
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是c语言笔试题目及答案,请参考。
c语言笔试题目及答案
一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选
项涂写在答题卡相应位置上,答在试卷上不得分。
(1)数据的存储结构是指________。
A)存储在外存中的数据 B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示
答案:D
评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。
(2)下列关于栈的描述中错误的是________。
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
答案:B
评析:栈是一种特殊的线性表,又称先进后出表(FILO―First In Last Out)。
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是
________。
A)冒泡排序为n2 B)冒泡排序为n
C)快速排序为n D)快速排序为n(n一1)/2
答案:D
评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。
A)log2n B)n/2 C)n D)n+l
答案:C
评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。
(5)下列对于线性链表的描述中正确的是________。
A)存储空间不一定是连续,且各元素的存储顺序是任意的
B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
答案:A
评析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
(6)下列对于软件测试的描述中正确的是________。
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则
答案:C
评析:关于软件测试的目的,Grenford J.Myers再《The Art of Software Testing》一书中给出了深刻的阐述,整体来说,软件测试的目的就是尽可能多地发现程序中的错误。
(7)为了使模块尽可能独立,要求________。
A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
答案:B
评析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。软件设计,应尽量做到高内聚,低耦合,有利于提高模块的独立性。
(8)下列描述中正确的是________。
A)程序就是软件
B)软件开发不受计算机系统的限制
C)软件既是逻辑实体,又是物理实体
D)软件是程序、数据与相关文档的集合
答案:D
评析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指________。
A)数据与程序独立存放
B)不同的数据被存放在不同的文件中
C)不同的数据只能被对应的应用程序所使用
D)以上三种说法都不对
答案:D
评析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。选项A、B、C三种说法都是错误的。
(10)用树形结构表示实体之间联系的模型是________。
A)关系模型 B)网状模型 C)层次模型 D)以上三个都是
答案:C
评析:层次模型是最早发展起来的数据库模型,它的基本结构是树形结构。
(11)算法具有五个特性,以下选项中不属于算法特性的是________。
A)有穷性 B)简洁性 C)可行性 D)确定性
答案:B
评析:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的基本特性。
(12)以下选项中可作为C语言合法常量的是________。
A)-80. B)-080 C)-8e1.0 D)-80.0e
答案:A
评析:c语言的常量分为整型常量、实型常量和字符型常量。选项A属于实型常量中的十进制小数形式的表示法,是合法的。
(13)以下叙述中正确的是________。
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
答案:C
评析:算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一个算法必须至少有一个输出。
(14)以下不能定义为用户标识符的是________。
A)Main B)_0 C)_int D)sizeof
答案:D
评析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。注意:大写字母和小写字母被认为是两个不同的字符。A中Main与主i函数名main不同。
(15)以下选项中不能作为合法常量的是________。
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0
答案:B
评析:指数形式的实型常量要求字每e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。
(16)数字字符0的ASCII值为48,若有以下程序
main
{char a=”1″,b=”2″;
printf(“%c,”,b++);
printf(“%d ”,b-a);
)
程序运行后的输出结果是________。
A) 3,2 B)50,2 C)2,2 D)2,50
答案:C
评析l执行语句“printf(“%c,ll,b++);”后,b的值变成字符3,执行“printf(“%d ”,b-a);”,即‘3’-‘1’。
(17)有以下程序
main( )
{
int m=12, n=34;
printf(“%d%d”,m++,++n);
printf(“%d%d ”,n++,++m);
}
程序运行后的输出结果是________。
A)12353514 B)12353513 C)12343514 D)12343513
答案:A
评析:执行“printf(“%d%d”m++,++n);”后,输出的是m和n+l的值1235,接着执行
“printf(“%d%d\n”,n++,++m);”输出n和m+l的值3514。
(18)有定义语句:int b;char c[10】;,则正确的输入语句是________。
A) scanf(”%d%s“,&b,&C); B) scanf(”%d%s“,&b,C);
C) scanf(”%d%s“,b,C); D) scanf(”%d%s“,b,&C);
答案:B
评析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。
(19)有以下程序
main()
{int m,n,p;
scanf(“m=%dn=%dp=%d”,&m,&n,&p);
printf(“%d%d%d\n”,m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,
则正确的输入是________。
A) m。123n=456p=789 B) m=123 n=456 p=789
C) m=123,n=456,p=789 D) 123 456 789
答案:A
评析:根据本题的数据输入形式“scanf(“m=%dn=%dp=%d”&m,&n,&p);”说明在输入数据时,必须输入“m=”、“n=”、“p=”字符,且中间不能含有空格。
(20)有以下程序
main()
{ int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf(”%d,%d\n”,a,b);
}
程序运行后的输出结果是________。
A)6,l B)2,l C)6,0 D)2,0
答案:B
评析:本题中“a=d/10%9;”的值为25/10%9=2; “b=a&&(-1);”为2&&(-1)=1(注意:-1表示真,只有O才表示假),所以a,b的值分别为2,1。
(21)有以下程序
main()
{
int i=1 j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf(“%d%d%d\n”,i,j,k);
}
程序运行后的输出结果是________。
A)l 2 3 B)2 34 C) 2 2 3. D)2 3 3
答案:D
评析:执行“i++==1&&(++j==3‖k++==3)”时,表达式“i++==1”嗨值为真,其值为1,表达式“++j=3”的值为真,根据短路原理,右边的表达式“k++==3”不再进行运算。括号中表达的值为l,作与运算后整个表达式的值也为l,输出i.j,k时,由于未执行过k,所以它们的值分别为2,3,3。
(22)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a
A)l B)2 C)3 D)4
答案:A
评析:条件表达式的一般形式为:表达式17表达式2:表达式3
本题先求的是a
(23)有以下程序
main( )
{
int p[8]={11,12,13,14,15,16,17,18},i=O,j=0;
while(i++<7)if p[i]%2)j+-=p[i];
printf(“%d\n”,j);
}
程序运行后的输出结果是________。
A)42 B)45 C)56 D)60
答案:B
评析:本程序的作用是求除p[O]外的其它奇数的和。
(24)有以下程序
main()
{
char a[7]= “a0\OaO\0”; int i,j;
i=sizeof(a);j=strlen(a);
printf(“%d%d\n”,i,j);
)
程序运行后的输出结果是________。
A)2 2 B)76 C)7 2 D)6 2
答案:C
评析:c语言中以‘\0’作为字符串的结束符,且strlen()函数计算的是‘\0’字符前的所有字符的个数。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。
(25)以下能正确定义一维数组的选项是________。
A)int a[5]={0,1,2,3,4,5; B)char a[]={0,1,2,3,4,5};
C)char a={’A’,’B’,’C’}; D)int a[5]=”0123″;
答案:B
评析:选项A中定义的是5个数组元素,但赋值的时候赋的是6个元素,所以出错;选项c不符合数组定义形式,数组名后应加上“[]”;选项D的类型说明符错误,如果用char定义就对了;选项B中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以选项B是正确的。
(26)有以下程序
int fl(int x,int y){return x>y?x:y;}
int f2(int x,int y){return x>y?y:x;}
main()
{
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));f=fl(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf(“%d,%d,%d\n”,e,f,g);
)
程序运行后的输出结果是________。
A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7
答案:A
评析:函数n的功能是返回两个数中比较大的值,f2的功能是返回两个数中比较小的值。
(27)已有定义:char a[]=”xyz”,b[]={’x’,’y’,’z};,以下叙述中正确的是________。
A)数组a和b的长度相同 B)a数组长度小于b数组长度
C)a数组长度大于b数组长度 D)上述说法都不对
答案:C
评析:c语言规定‘\0’为字符串结束标志。所以“char a[]=“xyz””的数组长度为4,而“b[]={‘x’,‘y’,‘z’};”的数组长度为3,数组长度与strlen函数所求的长度不同,本题是指数组占内存空间的大小。
(28)有以下程序
Void f(int *x, int *y)
{
int t;
t= *x; *x=*y;’*y=t;
)
main( )
{
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p {f(p,q); p++; qC;} 。 for(i=0;i<3;i++) printf(“%d”,a[1][i]); } 程序运行后的输出结果是________。 A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4. C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,l, 答案:D 评析;本程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。 (29)有以下程序 main() { im a[3][3],*p,i; p=&a[0][o]; for(i=0;j<9;i++) p[i]=I; for(i=0;j<3;i++)printf(“%d”,a[1][i]); ) 程序运行后的输出结果是________。 A)012 B)123 C)234 D)345 答案:D 评析:本题赋值后,a的数组元素的值分别为a[01[0]=0,a[0][1]=1,a[0][2]=2,a[1][0]=3,a[1][1]=4,a[1][2]=5,a[2][0]=6,a[2][1]=7,a[2][2]=8,故本题输出的值为345。 (30)以下叙述中错误的是________。 A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B)数组名代表的是数组所占存储区的首地址,其值不可改变 C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越 界”的出错信息 D)可以通过赋初值的方式确定数组元素的个数 答案:C 评析:在c语言中,如果出现下标越界的情况,系统不管在编译还是执行时都不会给出“下标越界”的错误提示。 (31)有以下程序 #define N20 fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;iC)a[i+1]=a[i]; } main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=O;i<5;i++) printf(“%d”,a[i]); } 程序运行后的输出结果是________。 A)10234 B)12344 C)12334 D)12234 答案:C 评析:本题函数fun的作用是将指定的数组元素(从下标n到下标m)向后移一位。由函数调用“fun(a,2,9);”可知,函数fun用于将a[2]到a[9]的各元素依次向后移一位,移完后,a数组中各元素的值分别为1,2,3,3,4,5,6,7,8,9,10,故输出的前5个数组元素为12334。 (32)有以下程序 main() { int a[3][2]={0},(*ptr)[2],i,j; for(i=0;i<2;i++) {ptr=a+i; scanf(“%d”,ptr); ptr++;} for(i=0;i<3;i++) { for(i=0;j<2;j++) printf(“%2d”,a[i][j]); printf(“\n”); } } 若运行时输入:1 2 3<回车>,则输出结果是________。 A)产生错误信息 B)l0 C)l 2 D)l 0 2 O 3 0 2 0 0 0 0 O 3 0 答案:B 评析:二维数组a,通过a[3][2]={0}将数组中的各个元素初始化为0,指针变量ptr,指向包含2个元素的一维数组。a[0][0]:l,a[1][0]=2,故本题的输出选B。 (33)有以下程序 prt(int *m, int n) { int i; for(i=O;i ) main() { int a[]={ 1,2,3,4,5 },i; prt(a,5); for(i=O;i<5;i++) printf(“%d,”,a[i]); 程序运行后的输出结果是________。 A)l,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1, 答案:B 评析:用数组名作函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共同占用同一段内存单元。 (34)有以下程序 main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p } 程序运行后的输出结果是________。 A)l,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1, C)0,1,2,3,4,5,6,7,8,9, D)l,l,1,l,l,l,l,l,l,l, 答案:A 评析:c语言规定数组变量名代表数组的首地址,即第0号元素的地址。本题将a数组中的值全部输出,即为l,2,3,4,5,6,7,8,9,0,。 (35)有以下程序 #define P 3 void F(int x){return(P*x*x);} main() {printf(“%d\n”,F(3+5));} 程序运行后的输出结果是________。 A)192 B)29 C)25 D)编译出错 答案:D 评析:return语句用于从被调函数带回一个函数值。void关键字表示“无类型”,即不需要从被调函数中带回函数值,所以不需要return语句,故编译时出错。 (36)有以下程序 main() {int c=35;printf(“%d\n”,c&C);} 程序运行后的输出结果是________。 A)0 B)70 C)35 D)1 答案:C 评析:按位“与”时,1&1=1,其他都等O。因为本题中相与的两个值相等,即对应位上的二进制值相等,所以“与”的结果也即为其值本身。 (37)以下叙述中正确的是________。 A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 答案:D 评析:通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。 (38)若有以下说明和定义 union dt {int a;har b;ouble c;}data; 以下叙述中错误的是________。 A)data的每个成员起始地址都相同 B)变量data所占的内存字节数与成员c所占字节数相等 C)程序段:data.a=5;pintf(“%f ”,data.C);输出结果为5.000000 D)data可以作为函数的实参 答案:C 评析:union是表示共用体的关键字,成员a,b,c共占用同一个内存空间,data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量’data所占的内存字节数与成员c所占字节数相等;执行“data.a=5;printf(“%f ”,data.C);”printf函数只是将内存中的数据以不同的类型输出,而不能将内存中的整型数据自动转换为等值的浮点数,故C是错误的。 (39)以下语句或语句组中,能正确进行字符串赋值的是________。 A)char*sp;*sp=”right!”; B)char s[lO];s=”right! “; C)char s[10];*s=”right! “; D)char*sp=”right! “; 答案:D 评析:选项A定义了字符型的指针变量sp,则*sp存储的是第一个字符,而给它赋的是字符串,故错; 选项B表示代表数组的首地址,而题中给它赋的是字符串,所以错误; 选项c定义了一个字符型的数组s[10],再通过+s给数组元素赋初值,这时是与选项A相同的错误。 (40)设有如下说明 typedef struct ST {long a; int b; char c[2];}NEW; 则下面叙述中正确的是________。 A)以上的说明形式非法 B)ST是一个结构体类型 C)NEW是一个结构体类型 D)NEW是一个结构体变量 答案:C 评析:typedef关键字用于声明一个新的类型名代替已有的类型名。 本题中如果没有用typedef进行定义的话,则struct ST为结构体类型,现在用typedef定义后,相当于用NEW代表了struct ST这一结构体类型,故NEW为结构体类型。 (41)有以下程序 main() { int a=1,b; for(b=l;b<10;b++) { if(a>=8)break; if(a%2==1){a+=5;continue;} a-=3; ) printf(“%d\n”,b); } 程序运行后的输出结果是________。 A) 3 B)4 C) 5 D) 6 答案:B 评析:break和continue的区别是:continue语句只结束本次循环,而不是终止整个循环的执行;而break语句则是结束整个循环过程,.不再判断执行的条件是否成立。 (42)有以下程序 main() { char s[]=”l 59″,*p; p=s; printf(“%c”,*p++);printf(“%c”,*p++); } 程序运行后的输出结果是________。 A)15 B)16 C)12 D)59 答案:A 评析:本题通过“p=s”将指针变量p指向字符数组s,在第一次输出时,由于++和*为同一优先级,“*p++”相于“+(p++)”。p指向s[1],输出为s[1]的值。 [c语言笔试题目及答案] 一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分) (1)在计算机中,一个字节所包含二进制位的个数是 A)2 B)4 C)8 D)16 (2)在多媒体计算机中,CD-ROM属于 A)存储媒体 B)传输媒体 C)表现媒体 D)表示媒体 (3)在DOS系统中,带有通配符的文件名*.*表示 A)硬盘上的全部文件 B)当前盘当前目录中的全部文件 C)当前盘上的全部文件 D)根目录中的全部文件 (4)十六进制数100转换为十进制数为 A)256 B)512 C)1024 D)64 (5)能将高级语言编写的源程序转换为目标程序的软件是 A)汇编程序 B)编辑程序 C)解释程序 D)编译程序 (6)在Internet中,用于在计算机之间传输文件的协议是 A)TELNET B)BBS C)FTP D)WWW (7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有”+“标记表示 A)该文件夹为空 B)该文件夹中含有子文件夹 C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件 (8)在Windows环境下,下列叙述中正确的是 A)在”开始“菜单中可以增加项目,也可以删除项目 B)在”开始“菜单中不能增加项目,也不能删除项目 C)在”开始“菜单中可以增加项目,但不能删除项目 D)在”开始"菜单中不能增加项目,但可以删除项目 (9)从Windows环境进入DOS方式后,返回Windows环境的命令为 A)QUITB)WINC)EXITD)ESC (10)下列叙述中正确的是 A)计算机病毒只感染可执行文件 B)计算机病毒只感染文本文件 C)计算机病毒只能通过软件复制的方式进行传播 D)计算机病毒可以通过读写磁盘或网络等方式进行传播 ★笔试题目 ★笔试题库 文档为doc格式篇5:计算机二级c语言笔试题库