C语言精选题.docx
- 文档编号:10765004
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:25
- 大小:23.54KB
C语言精选题.docx
《C语言精选题.docx》由会员分享,可在线阅读,更多相关《C语言精选题.docx(25页珍藏版)》请在冰豆网上搜索。
C语言精选题
(22)在C语言中,合法的长整型常数是
A)0LB)4962710C)0.054838743D)2.1869e10
(21)请选出可用作C语言用户标识符的一组标识符
A)voidB)a3_b3C)ForD)2a
define_123-abcDO
WORDIFCasesizeof
(24)请选出合法的C语言赋值语句
A)a=b=58B)i++;
C)a=58,b=58D)k=int(a+b);
(26)以下说法中正确的是
A)#define和printf都是C语句B)#define是C语句,而printf不是
C)printf是C语句,但#define不是D)#define和printf都不是C语句
(22)若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为
A)floatB)intC)charD)double
(23)若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是
A)1B)2
C)2.0D)2.5
(21)有如下程序
main0
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是
A)34B)42C)43D)33
(21)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);C)a=c=b;
(42)在以下一组运算符中,优先级最高的运算符是
A)<=B)=
C)%D)&&
(42)有以下程序
#include
main()
{inta,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是
A)2,1B)3,2C)4,3D)2,-1
(36)执行下面的程序段
intx=35;
charz='A';
intb;
B=((x&15)&&(z<'a'));
后,B的值为
A)0B)1C)2D)3
(36)下面程序的输出是
main()
{unsigneda=32768;
printf("a=%d\n",a);
}
A)a=32768B)a=32767
C)a=-32767D)a=-1
(22)以下程序运行后,输出结果是
A)cdeB)字符c的ASCII码值C)字符c的地址D)出错
main()
{char*s="abcde";
s+=2;
printf("%ld\n",s);
}
(33)若有说明:
long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a;scanf("%ld",p);
B)p=(long*)malloc(8);scanf("%ld",p);
C)scanf("%ld",p=&a);
D)scanf("%ld",&a);
(42)设a=5,b=6,c=7,d=8,m=2,n=2,执行
(m=a>b)&&(n=c>d)
后n的值为
A)1B)2C)3D)4
(28)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A)a<>0B)!
a
C)a=0D)a
(38)假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表
1
示代数式-----的表达式是
abc
A)1/a*b*c
B)1/(a*b*c)
C)1/a/b/(float)c
D)1.0/a/b/c
(45)下面程序的输出结果是
#include
main()
{inti=2,p;
p=f(i,i+1);
printf("%d",p);
}
intf(a,b)
inta,b;
{intc;
if(a>b)c=1;
else
if(a==b)c=0;
elsec=-1;
return(c);
}
A)-1B)0C)1D)2
(41)假定所有变量均已正确说明,下列程序段运行后x的值是
a=b=c=0;x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A)34B)4C)35D)3
(32)运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为
A)2,0B)5,0C)5,5D)2,5
#include
mair()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a';
case'h';
default;v1++;
case'0';v2++;
}
printf("%d,%d\n",v1,v2);
}
(32)执行下面的程序后,a的值为
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}b-=5;
}
}
A)7B)8
C)9D)10
(32)若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是
for(i=5;i;i--)
for(j=0;j<4;j++){...}
A)20B)25
C)24D)30
(27)执行以下程序段时
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
X=-1;
do{x=x*x;}while(!
x);
(34)若有以下定义和语句:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则不能表示a数组元素的表达式是
A)*pB)a[10]
C)*aD)a[p-a]
(26)下面能正确进行字符串赋值操作的语句是
A)chars[5]={"ABCDE"};B)chars[5]={'A','B','C','D','E'};
C)char*s;s="ABCDEF";D)char*s;scanf("%s",s);
(24)下述对C语言字符数组的描术中错误的是
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
(28)不能把字符串:
Hello!
赋给数组b的语句是
A)charb[10]={'H','e','l','l','o','!
'};
B)charb[10];b="Hello!
";
C)charb[10];strcpy(b,"Hello!
");
D)charb[10]="Hello!
";
(45)函数调用:
strcat(strcpy(str1,str2),str3)的功能是
A)将串str1复制到串str2中后再连接到串str3之后
B)将串str1连接到串str2之后再复制到串str3之后
C)将串str2复制到串str1中后再将串str3连接到串str1之后
D)将串str2连接到串str1之后再将串str1复制到串str3中
(30)给出以下定义:
charx[]="abcdefg";
chary[]={'a','b','c','d','e','f','g'};
则正确的叙述为
A)数组X和数组Y等价B)数组x和数组Y的长度相同
C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度
(26)请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
A)5B)14C)8D)输出项不合法,无正常输出
(40)设有
staticcharstr[]="Beijing";
则执行
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为
A)5B)7C)12D)14
(49)以下程序运行后,如果从键盘上输入:
book<回车>
book<空格><回车>
则输出的结果是
A)*8B)#9C)#6D)*9
#include
main()
{chara1[80],a2[80],*s1=a1,*s2=a2;
gets(s1);gets(s2);
if(!
strcmp(s1,s2))printf("*");
esleprintf("#");
printf("%d/n",strlen(strcat(s1,s2)));
}
(47)以下程序的输出结果是
A)AfghdEFGB)AbfhdC)AfghdD)Afgd
#include
main()
{char*p1,*p2,str[50]="ABCDEFG";
p1="abcd";p2="efgh";
strcpy(str+1,p2+1);strcpy(str+3,p1+3);
printf("%s",str);
}
(47)有以下程序
viodfun(inta,intb,intc)
{a=456;b=567;c=678;}
main()
{intx=10,y=20,z=30;
fun(x,y,z);
printf("%d,/%d\n",c,d);
}
输出结果是
A)30,20,10B)10,20,30
C)456,567,678D)678,567,456
(48)有以下程序
intfun(intx,inty,int*cp,int*dp)
{*cp=x+y;*dp=x-y;}
main()
{inta,b,c,d;
a=30;b=50;
fun(a,b,&c,&d);
printf("%d,%d\n",c,d);
}
输出结果是
A)50,30B)30,J50C)80,-20D)80,20
(41)下列程序执行后输出的结果是
#include〈stdio.h〉
f(inta)
{intb=0;
statinc=3:
a=c++,b++;
returu(a);
}
main()
{inta=2,i,k;
for(i=0;i〈2;i=++)
k=f(a++);
printf("%d\n",k);
}
A)3B)0C)5D)4
(37)以下程序运行后,输出结果是
A)8,15B)8,16C)8,17D)8,8
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
(36)在C语言中,函数的隐含存储类别是
A)autoB)staticC)externD)无存储类别
(47)下列程序执行后输出的结果是
intd=1;
fun(intq)
{intd=5;
d+=p++;
printf("%d".d);
}
main()
{inta=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
A)84B)96C)94D)85
(47)请选出以下程序段的输出结果
#include
main()
{charsl[10],s2[10],s3[10],s4[10];
scanf("%s%s",s1,s2);gets(s3);gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
输入数据如下:
(此处
aaaabbbb
ccccdddd
A)aaaaB)aaaaC)aaaaD)aaaabbbb
bbbbbbbbbbbbcccc
ccccccccdddddddd
ccccddddddddeeee
(26)以下程序的输出结果是
main()
{intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A)1010B)99
C)910D)109
(43)设有如下定义:
int(*ptr)*();
则以下叙述中正确的是
A)ptr是指向一维组数的指针变量
B)ptr是指向int型数据的指针变量
C)ptr是指向函数的指针,该函数返回一个int型数据
D)ptr是一个函数名,该函数的返回值是指向int型数据的指针
(46)请选出以下程序段的输出结果
#include
#defineMIN(x,y)(x)<(y)?
(x):
(y)
main()
{inti,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)15B)100C)10D)150
(40)执行下面的程序后,a的值是
#defineSQR(X)X*X
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A)10B)1C)9D)0
(34)设有以下宏定义:
#defineN3
#defineY(n)((N+1)*n)
则执行语句:
z=2*(N+Y(5+1));后,z的值为
A)出错B)42C)48D)54
(33)设有如下的程序段:
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为
A)'o'B)'\0'C)不确定的值D)'o'的地址
(38)设有以下定义:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*prt)[3]=a,*p=a[0]
则下列能够正确表示数组元素a[1][2]的表达式是
A)*((*prt+1)[2])B)*(*(p+5))
C)(*prt+1)+2D)*(*(a+1)+2)
(43)若有以下定义和语句:
intw[2][3],(*pw)[3];
pw=w;
则对w数组元素非法引用是
A)*(w[0]+2)B)*(pw+1)[2]
C)pw[0][0]D)*(pw[1]+2)
(36)设有如下定义:
char*aa[2]={"abcd","ABCD"};
则以下就法中正确的是
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
(41)设有如下程序:
#include
main()
{int**k,*j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
上面程序的输出结果是
A)运行错误B)100C)i的地址D)j的地址
(33)若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;
FILELCHINABEIJINGSHANGHAI
程序的输出结果是
A)CHINABEIJINGSHANGHAIB)FILELCHINABEIJING
C)CBSD)FCB
main(intargc,char*argv[])
{while(argc-->0)
{++argv;printf("%s",*argv);}
}
(42)下列程序的输出结果是
main()
{inta[5]={2,4,6,8,10},*P,**k;
p=a;
k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
}
A)44B)22C)24D)46
(43)以下程序运行后,输出结果是
A)1B)7C)9D)11
fut(int**s,intp[2][3])
{**s=p[1][1];}
main()
{inta[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&p,a);
printf("%d\n",*P);
}
(50)下面程序的输出结果为
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&dt[0],60,&dt[1],
70,&dt[2],80,&dt[3]};
main()
{p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A)10B)50C)51D)60
20606070
20212131
(45)设有以下定义:
typedefunion
{longi;intk[5];charc;}DATE;
structdate
{intcat;DATEcow;doubledog;}too;
DATEmax;
则下列语句的执行结果是
printf("%d",sizeof(structdate)+sizeof(max));
A)25B)30C)18D)8
(28)设有如下枚举类型定义:
enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚举量Fortran的值为
A)4B)7C)102D)103
(50)以下对枚举类型名的定义中正确的是
A)enuma={one,two,three};B)enuma{one=9,two=-1,three};
C)enuma={"one","two","three"};D)enuma{"one","two","three"};
(30)标准函数fgets(s,n,f)的功能是
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
/***********************************************************************************/
(6)若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是6
──
inta,b;
scanf("a=%b,b=%d”,&a,&b);
(6)设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___(6).
2.0+x/y
(8)表示“整数x的绝对值大于5”时值为“真”的C语言表达式是[8]。
(6)请写出以下数学式的C语言表达式
a
───
b.c
(9)要使以下程序段输出10个整数,请填入一个整数。
for(i=0;i<=[9];printf(“%d\n”,i+=2));
(7)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___(7).
for(i=0,j=10;i<=j;i++,j--)k=i+j;
(11)若输入字符串:
abcde<回车>,则以下while循环体将执行[11]次。
While((ch=getchar())==’e’)printf(“*”);
(12)下面程序的功能是:
将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。
请填空。
#include
#include
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;[15])
------
if([16])
------
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
(16)以下程序的输出结果是[16]。
#defineMAX(x,y)(x)>(y)?
(x):
(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf(“%d\n”,t);
}
(9)以下程序输出的是[9]
-----
main()
{inta[10]={19,23,44,17,37,28,49,36},*p;
p=a;
printf("%d\n",(p+=3)[3]);
}
(10)以下程序输出的是[10]
------
main()
{inti=3,j=2;
char*a="DCBA";
printf("%c%c\n",a[i],a[j]);
}
(13)若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是[13]。
intw[10]={23,54,10,33,47,98,72,80,61},
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 精选