C语言程序设计样题Word格式.docx
- 文档编号:17909588
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:16
- 大小:24.75KB
C语言程序设计样题Word格式.docx
《C语言程序设计样题Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计样题Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
<
表示回车),则正确的输出结果为(A)。
main()
{intx,y,z;
scanf(“%d%d%d”,&
x,&
y,&
z);
printf(“x+y+z=%d\n”,x+y+z);
}
A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值
14、已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是(B)。
if(x>
y)z=x;
x=y;
y=z;
A)x=10,y=20,z=30B)x=20,y=30,z=30
C)x=20,y=30,z=10D)x=20,y=30,z=20
15、语句while(!
E);
中的表达式!
E等价于(A).
A)E==0b)E!
=1C)E!
=0D)E==1
16、以下对二维数组a的正确说明是(C).
A)inta[3][];
B)floata(3,4);
C)doublea[1][4]D)floata(3)(4);
17、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(D).(假设a[0][0]位于数组的第一个位置上。
)
A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1
18、若p=&
x,则下列关系表达式之值为1的是(B)
A)p==xB)*p==xC)&
p==xD)*x==p
19、C语言中最基本的数据类型包括(B)
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、逻辑型、字符型D)整型、实型、字符串型
20、C语言中,要求运算对象必须是整型数据的运算符是(A)
A)%B)/C)\D)&
21、表示数学关系“x≥y≥z”的C语言表达式是(C)
A)x>
=y>
=zB)x>
=y||y>
=zC)x>
=y&
y>
=zD)x≥y≥z
22、以下说法中正确的是(C)
A)C程序总是从文件中第一个函数开始执行
B)C程序中,只有main()函数才可以调用其他函数
C)C程序总是从main()函数开始执行
D)C程序中的main()函数必须放在程序的开头
23、若有定义:
inta=7;
floatx=2.5,y=4.7;
24、则表达式x+a%3*(int)(x+y)%2/4的值为(A)
A)2.5B)2.75C)3.5D)0
25、设变量a是整型,f是实型,i是双精度型,则表达式10+'
+i*f值的数据类型为(C)
A)intB)floatC)doubleD)不确定
26、有输入语句:
scanf("
%d,%d"
&
a,&
b);
为使变量a、b分别为5和3,从键盘输入数据的正确形式为(B)
A)53<
回车>
B)5,3<
C)a=5b=3<
D)a=5,b=3<
27、定义如下变量和数组:
intj;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是(C)
for(j=2;
j>
=0;
j--)
printf("
%2d"
x[j][2-j]);
A)159B)147C)753D)369
28、执行下面程序后,a的值是(B)
#include<
stdio.h>
#defineSQR(x)x*x
voidmain()
{inta=10,k=2,m=1;
a=SQR(k+m);
%d\n"
a);
}
A)10B)5C)2D)1
29、以下叙述不正确的是(C)
A)在函数内部定义的变量是局部变量
B)函数中的形式参数是局部变量
C)全局变量的作用范围仅限于其所在的整个文件
D)局部变量的作用范围仅限于本函数
30、设a=3,b=4,c=2,d=1,则表达式“a>
b?
a:
c>
d?
c:
d”的值为(C)
A)4B)3C)2D)1
31、有以下程序段:
x=-1;
do
x=x*x;
while(!
x);
32、执行时,循环体执行的次数为(B)
A)0B)1C)2D)不确定
33、以下不正确的if语句形式是(C)
A)if(x>
y&
x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf("
%d"
x)
elsescanf("
y);
D)if(x<
y){x++;
y++;
34、以下程序的输出结果是(C)
#include<
voidmain()
{intx=2,y=-1,z=2;
if(x<
y)
if(y<
0)z=0;
elsez+=1;
printf("
z);
A)0B)1C)2D)3
35、以下能正确计算1×
2×
3×
…×
10的程序段是(A)
A)i=1,s=1;
B)s=1;
i=1;
dowhile(i<
=10)
{s=s*i;
i++;
}s=s*(++i);
while(i<
11);
C)for(i=1,s=0;
i<
=10;
i++)D)for(i=1,s=1;
;
i++)
s=s*i;
s=s*i;
36、若j为整型变量,则以下循环执行次数是(C)
for(j=0;
j==0;
j--);
A)无限次B)0次C)1次D)2次
37、若有说明:
inta[10];
则对a数组元素的正确引用是(C)
A)a[3.5]B)a(8)C)a[6-5]D)a[10]
38、C语言规定,变量做实参时,它和对应形参之间的数据传递方式是(B)
A)地址传递B)单向值传递C)双向值传递D)由用户指定传递方式
39、C中,一个float类型的数据在内存中占(C)个字节。
A)1B)2C)4D)8
40、设有程序段:
intk=5;
while(k<
=0)
k--;
则下列描述中正确的是(C)
A)while循环执行5次B)循环是无限循环
C)循环语句一次也不执行D)循环体语句执行一次
41、下面程序段的运行结果是(B)
charc[5]={'
'
b'
\0'
c'
};
printf("
c);
A)'
'
B)abC)AbcD)"
abc"
42、以下不正确的字符串赋值语句是(C)
A)char*s;
s="
abcde"
B)chars[]="
C)chars[10];
D)char*s="
43、设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是(B)
A)k=*p1+*p2;
B)p2=k;
C)p1=p2;
D)k=p2-p1;
44、下面程序的输出结果是(A)
{chars[]="
ABCD"
char*p;
for(p=s;
p<
s+4;
p++)
%s\n"
p);
A)ABCDB)AC)DD)ABCD
BCDBCABC
CDCBAB
DDAA
45、以下关于C函数的定义和调用描述正确的是(B)
A)函数的定义可以嵌套,但函数的调用不可嵌套
B)函数的调用可以嵌套,但函数的定义不可嵌套
C)函数的定义和调用均可以嵌套
D)函数的定义和调用均不可嵌套
46、以下关于变量的作用域说法正确的是(D)
A)在不同函数中不能使用相同名字变量
B)在函数外部定义的变量只在本函数范围内有效
C)在函数内的复合语句定义的变量在本函数内有效
D)形式参数是局部变量
47、以下关于变量的作用域叙述不正确的是(C)
A)在函数内部定义的变量是局部变量
B)函数中的形式参数是局部变量
C)全局变量的作用范围仅限于其所在的文件
D)局部变量的作用范围仅限于本函数
48、以下关于C函数参数说法不正确的是(B)
A)实参可以是常量、变量和表达式
B)形参可以是常量、变量和表达式
C)实参可以为任意数据类型
D)形参应与对应的实参类型一致
49、以下关于C函数返回值的叙述正确的是(D)
A)被调函数中只有使用return语句才能返回主调函数
B)使用一个return语句可以返回多个函数值
C)函数返回值类型取决于return语句中的表达式类型
D)函数返回值类型取决于定义该函数时所指定的类型
50、在C中,“a>
b>
c”属于哪种表达式?
(A)
A)关系B)赋值C)逻辑D)非法
51、以下不合法的C表达式是(C)
A)10||8B)12==9+1C)++5D)x!
=y
52、给定以下程序段:
intn=10;
while(n>
6)
{n--;
%3d"
n);
53、以上程序段输出结果是(D)
A)1098B)987C)10987D)9876
54、若i,j已定义为int型,则以下程序段中内循环总的执行次数是(C)
for(i=5;
i>
0;
i--)
for(j=1;
j<
6;
j++)
{……}
A)30B)24C)25D)20
55、若已定义:
float*p,m=3.14159;
则使p指向m正确的赋值语句是(B)
A)p=m;
B)p=&
m;
C)*p=m;
D)*p=&
56、若已定义:
chars[10];
则下面表达式中不能表示s[1]地址的是(A)
A)s++B)s+1C)&
s[0]+1D)&
s[1]
57、在C语言中,下列标识符中合法的是(A)。
A)_int;
B)3in1-3;
C)A_B!
D;
D)void
58、以下描述正确的是(A)。
A)一个C语言程序由一个主程序和若干子程序组成
B)一个C语言程序由若干函数组成,而main函数必须位于其他函数前面
C)一个C语言程序由若干过程组成
D)一个C语言程序的main函数既是程序的入口,也是函数的出口
59、下面是对宏定义的描述。
不正确的是:
(C)
A)宏不存在类型问题,宏名无类型,它的参数也无类型
B)宏替换不占用运行时间
C)宏替换时先求出实参表达式的值,然后代入形参运算求值
D)宏替换只是字符串的简单替代
60、以下描述正确的是:
(C)
A)在程序的同一行上可以出现多个预处理命令行
B)%可以参与浮点型运算
C)一个函数可以返回结构型变量
D)以下定义中,CR是称为“宏名”的标识符#defineCR2.64
61、设shorta在内存中表示为:
1111111111111111,它的十进制值是(B)。
A)32767B)-1C)65535D)-2
62、定义以下结构数组和结构指针以后,请问后面的表达式何者是错误的:
(C)。
structperson
{intnum;
charname[50];
}st[10]={{001,”zhangsan”},{002,“Lisi”}},*p=&
st[1];
A)&
st[1].numB)p->
nameC)*((*p).name)D)*(p->
num)
63、系统定义的堆动态内存分配函数的返回值类型是:
(B)
A)voidB)void型指针变量C)char型指针变量D)char型变量
64、以下语句执行后的输出结果是多少:
(A)
unsignedshorta=3,b=4;
a<
b^0x31);
A)1B)31C)0D)49
65、为了将一个字符串s2复制到另外一个字符数组s1,应当使用(C)
A)s1==s2B)s1=s2C)strcpy(s1,s2))D)strcmp(s1,s2)
66、在以下定义以后,
inta[2][3]={{0,0,0},{4,5,6}};
int(*p)[3];
请问后面的操作何者是正确的:
A)p=&
a;
B)p=a[1];
C)p=&
a[0]D)p=&
a[2][3]
二、填空题
1、函数是C程序的基本构成单位,C程序总是从_main函数_________开始执行的。
2、赋值表达式x*=y+5的另一种书写形式为____x=x*(y+5)______
3、已知a=10,b=20,c=3,则表达式a>
b||c的值为____1______
4、整数m既能被3整除又能被4整除的逻辑表达式为__(m%3==0)&
(m%4==0)________
5、设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为__32________。
6、已知:
chara=’a’,b=’b’,c=’c’;
inti;
则表达式i=a+b+c的值为__293________。
7、设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为___3.5_______。
8、定义:
intm=5,n=3;
则表达式m/=n+4的值是____0______,表达式m=(m=1,n=2,n-m)的值是_____1_____。
9、表达式m+=m-=(m=1)*(n=2)的值是__-2________。
10、C语言中,数组在内存中占一片___连续_______的存储区,由_____数组名_____代表它的首地址。
数组名是一个_____地址_____常量,不能对它进行赋值运算。
11、供用户使用的存储空间可以分为程序区、___静态存储区_______、_动态存储区_________。
12、若有定义:
int*p[4];
则标识符p表示数组长度为___4_______的一维指针数组
13凡是函数中未指定存储类型的局部变量,其默认的存储类型为___auto_______
14、设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为__32________。
三、程序填空
1、下面程序的功能是:
从键盘输入一个字符,若是大写字母,则转换为小写字母并输出,若为小写字母则直接输出,请在_____处填上合适内容,使程序完整。
#include<
voidmain()
{charch;
ch=getchar();
if(__ch>
=’A’&
ch<
=’Z’______'
ch+=32;
ch);
2、下面程序的功能是:
求1~100间的偶数和,请在_____处填上合适内容,使程序完整。
{intnum,sum=0;
for(num=2;
num<
=100;
num=num+2)
___sum=sum+num_____;
1-100间的偶数和是:
sum);
3、判断m是否是素数
math.h>
main()
{
intm,i,k,flag=1;
scanf(“%d”,&
m);
k=sqrt(m);
for(i=2;
=k;
if(m%i==0)
{___flag=0_____;
____break____;
if(__!
flag______) printf(“%disnotaprimenumber\n”,m);
else printf(“%disaprimenumber\n”,m);
}
4、下面程序段是求n!
的递归函数,请将函数补充完整。
doublefac(intn)
{doubleresult;
if(n==1)
result=1;
else
result=__n*fac(n-1)______
________}
5、计算1+1/2+1/4+…+1/50的值,并显示出来。
{inti=2;
floatsum=1.0;
=_50_______)
{sum+=1/_(i*1.0)______;
____i++____;
printf(“sum=%f\n”,sum);
四、阅读程序
1.#include<
{charch;
intcnt1=0,cnt2=0;
while((ch=getchar())!
='
\n'
if(ch>
z'
)cnt1++;
elsecnt2++;
COUNT=%d\n"
cnt1);
若输入“ThisisaCprogram.”,运行结果:
COUNT=13
2.#include<
{inti,j,temp;
inta[]={0,1,2,3,4,5,6,7,8,9};
for(i=0,j=9;
j;
i++,j--)
{temp=a[i];
a[i]=a[j];
a[j]=temp;
for(j=0;
j<
10;
j++)
printf("
a[j]);
运行结果:
9876543210
3.#include<
string.h>
{charstr1[20]="
good"
str2[]="
morning"
inti,j;
for(i=strlen(str1),j=0;
str2[j]!
i++,j++)
str1[i]=str2[j];
str1[i]='
string1=%s"
str1);
string1=goodmoring
4.#include<
{inti,j,pos;
floatval,a[10];
for(i=0;
scanf("
%f"
a[i]);
val=a[0];
if(a[j]>
val)
{val=a[j];
pos=j;
Max=%f,position:
val,pos);
本程序的功能是:
从键盘输入10个数存到数组a中,求10个数的最大值及其位置
当程序运行时,从键盘输入“1029384756”,运行结果:
Max=9.000000,position:
3
5.#include<
floataverage(intx[],intn)
{inti;
floatsum=0;
n;
sum+=x[i];
return(sum/n);
{inta[5]={2,4,6,8,10};
floatrst;
rst=average(a,5);
result=%f\n"
rst);
result=6.000000
给定如下程序:
6.#include<
{chargrade;
&
grade);
switch(grade)
{case'
A'
:
85—100\n"
);
break;
case'
B'
70—84\n"
C'
60—69\n"
D'
60\n"
default:
error\n"
当程序运行时,从键盘输入“D”,输出的结果是:
60
6.给定如下程序:
{inta[5]={2,5,3,7,6},i,j,t;
for(i=0;
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)