c语言Word下载.docx
- 文档编号:18484661
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:23
- 大小:43.24KB
c语言Word下载.docx
《c语言Word下载.docx》由会员分享,可在线阅读,更多相关《c语言Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
,"
1212\"
,[abc],{qwer}
5e,-abf,+abc
6.表达式类型。
(1)设有说明:
char w;
int x;
float y;
double z;
则表达式w*x+z-y值的数据类型为doubel。
(2)已知intb;
floatd;
chara;
a+b+123.456+d的类型是double。
(3)设变量a是整型,f是实型,i是双精度型,则表达式10+'
a'
+i*f值的数据类型为。
A.intB.floatC.doubleD.不确定
7.写表达式。
(1)代数式
的C语言表达式是(a+b)/(a-b)*c
(2)以下不能正确表示代数式
的C语言表达式是()。
A)2*a*b/c/dB)a*b/c/d*2
C)a/c/d*b*2D)2*a*b/c*d
8.进制与输入输出。
d(或i)-int,o-八进制,x(或X)-十六进制,u-unsignedint,f-实型,c-字符,s-字符串。
(1)C源程序中不能表示的数制是()。
A)二进制B)八进制C)十进制D)十六进制
(2)若有定义“inta;
floatb;
”,则正确的输入输出为。
A)scanf("
%f%d"
&
a,&
b);
printf("
%d,%d\n"
a,b);
B)scanf("
%d%f"
%a,%b);
%d,%f\n"
C)scanf("
D)scanf("
%d%d"
%f,%d\n"
(3)若有定义语句:
doublex,y,*px,*py;
执行了px=&
x;
py=&
y;
之后,正确的输入语句是
A)scanf("
%f%f"
x,y);
&
x,&
y);
%lf%le"
px,py);
D)scanf("
%lf%lf"
(4)有以下程序
#include<
stdio.h>
main()
{inta1,a2;
charc1,c2;
scanf("
%d%c%d%c"
a1,&
c1,&
a2,&
c2);
printf("
%d,%c,%d,%c"
a1,c1,a2,c2);
}
若通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,
程序输出结果是:
12,a,34,b则正确的输入格式是(以下_代表空格,<
CR>
代表回车)
A)12a34b<
B)12_a_34_b<
C)12,a,34,b<
D)12_a34_b<
(5)printf函数的调用格式
printf("
格式控制字符串"
,输出表列);
在TurboC和VC中,printf函数的输出格式的一般形式为:
%[标志][宽度指示符][.精度指示符][长度修饰符]格式字符
表3.4标志及其意义
标志
意义
−
输出结果左对齐,右边填空格;
缺省则输出结果右对齐,左边填空格
+
输出符号(正号或负号)
空格
输出值为正时冠以空格,为负时冠以负号
#
对c,s,d,u类无影响;
对o类,在输出时加前缀0;
对x类,在输出时加前缀0x
对数值格式,在指定宽度的同时,输出数据左边空格处填以数字0
表3.5标志的用法
输出语句
输出结果
%6d\n"
111);
ㄩㄩㄩ111
%-6d\n"
111ㄩㄩㄩ
%+d\n"
+111
%d\n"
/*%和d之间有一个空格*/
ㄩ111
−111);
−111
%#o\n"
10);
012
%#x\n"
16);
0x10
%06.2f\n"
1.6);
001.60
9.条件表达式。
在if、do-while、while、for语句中的条件表达式都可以是任意合法的表达式。
如if(a+5)、if(b=7)、if(a)……。
10.写if语句的运行结果。
(1)#include<
main()
{intx;
scanf("
%d"
x);
if(x++>
5)printf("
x);
elseprintf("
x--);
输入6和4,则输出结果是_7__5__
(2)#include<
main()
{intx;
if(x<
=3);
elseif(x!
=10)printf("
(3)#include<
{intx=3,y=0,z=0;
if(x=y+z)printf("
****"
);
####"
(4)以下选项中与if(a==1)a=b;
elsea++;
语句功能不同的switch语句是
A)switch(a)B)switch(a==1)
{case1:
a=b;
break;
{case0:
default:
a++;
case1:
}}
C)switch(a)D)switch(a==1)
{default:
{case1:
;
case1:
case0:
}}
(5)有以下程序
#include
main()
{inta=1,b=2,c=3,d=0;
if(a==1)
if(b!
=2)
if(c==3)d=1;
elsed=2;
elseif(c!
=3)d=3;
elsed=4;
elsed=5;
printf(“%d\n”,d);
}
程序运行后的输出结果是___4___。
11.逻辑运算。
(1)main()
{
inta,b,c,d;
a=b=c=0;
d=(a++&
&
b++)||c++;
%d,%d,%d,%d\n"
d,a,b,c);
d=a++||(b++&
c++);
(2)有以下程序
{inta=1,b=2,c=3,d=0;
if(a==1&
b++==2)
if(b!
=2||c--!
=3)
%d,%d,%d\n"
a,b,c);
elseprintf("
程序运行后输出结果是C
A)1,2,3B)1,3,2
C)1,3,3D)3,2,1
12.写switch语句执行结果。
(1)main()
{intx=1,y=0,a=0,b=0;
switch(x)
switch(y)
{case0:
break;
case1:
b++;
}
case2:
}
printf("
a=%d,b=%d\n"
}
(2)inta=1,b=0;
switch(a)
{
case
1:
switch(b)
{case
0:
**0**"
break;
case
**1**"
2:
**2**"
A)**0**
B)**0****2**
C)**0****1****2**D)有语法错误
13.循环次数。
(1)intn=0;
do{++n;
}while(n<
=0);
//1
(2)intn=0;
while
(1){n++;
}//无限次
(3)intn=10;
while(n);
{n--;
}//10
(4)for(n=0,i=1;
;
i++)n+=i;
//无限次
(5)for(i=0,j=5;
++i!
=--j;
)printf("
%d%d"
i,j);
(6)for(x=0,y=0;
(y!
=123)&
(x<
4);
x++);
//4
(7)以下程序段中的变量已正确定义
for(i=0;
i<
4;
i++,j++)
for(k=1;
k<
3;
k++);
*"
程序段的输出结果是
A)********
B)****
C)**
D)*
(8)有以下程序
#include<
{inti=5;
do
{if(i%3==1)
if(i%5==2)
{printf("
*%d"
i);
i++;
}while(i!
\n"
程序的运行结果是()。
A)*7B)*3*5C)*5D)*2*6
14.累加、连乘。
(1)计算s=1×
2×
3×
…×
10
(2)计算
,其中y为整型变量且y≥0
(3)计算
(4)求下列式子的值。
1-
+
-
…+
15.数组的使用。
(1)若有说明:
int
a[10];
则对数组元素的正确引用是。
A)a[10]
B)a[3.5]
C)a(5)
D)a[10-10]
(2)若有说明:
a[][3]={1,2,3,4,5,6,7};
则a数组第一维的大小是。
A)2B)3C)4D)无确定值
(3)若有说明:
inta[3][4];
则对a数组元素的非法引用是。
A)a[0][3*1]B)a[2][3]C)a[1+1][0]D)a[0][4]
(4)若有以下定义语句:
inta[]={1,2,3,4,5,6,7,8,9,10};
则值为5的表达式是。
A)a[5]B)a[a[4]]C)a[a[3]]D)a[a[5]]
(5)若二维数组a有m列,则在a[i][j]前的元素个数为。
A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1
(6)若有说明:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是。
A)*p+9B)*(p+8) C)*p+=9 D)p+8
(7)以下选项中正确的语句组是
A)chars[];
s="
BOOK!
B)char*s;
s={"
};
C)chars[10];
D)char*s;
(8)以下程序的输出结果是。
{intn[5]={0,0,0},i,k=2;
i<
k;
i++)
n[i]=n[i]+1;
n[i]);
(9)以下程序的输出结果是sum=6。
{inta[3][3]={1,3,5,7,9,11,13,15,17};
intsum=0,i,j;
for(i=0;
i++)
for(j=0;
j<
j++)
{a[i][j]=i+j;
if(i==j)sum=sum+a[i][j];
sum=%d"
sum);
(10)以下程序的输出结果是3。
{inti,j,k,n[3];
i++)n[i]=0;
k=2;
for(j=0;
n[j]=n[i]+1;
n[1]);
(11)有以下程序
{char*a[]={"
abcd"
"
ef"
gh"
ijk"
inti;
for(i=0;
i++)printf("
%c"
*a[i]);
程序运行后的输出结果是
A)aegiB)dfhkC)dfhkD)abcdefghijk
16.函数。
(1)如有函数调用语句:
func(rec1,rec2+rec3,(rec4,rec5));
在该函数调用语句中,含有的实参个数是3。
(2)语句strcat(srcpy(str1,str2),str3);
的功能是。
(3)函数调用语句f((s1,s2,s3),(s4,s5,s6,s7));
中参数的个数是2。
(4)若函数中有定义语句:
intk;
则
A)系统将自动给k赋初值0B)这是k中的值无定义
C)系统将自动给k赋初值-1D)这时k中无任何值
(5)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是
A)autoB)registerC)staticD)auto或register
(6)以下叙述正确的是
A)C语言程序是由过程和函数组成的
B)C语言函数可以嵌套调用,例如:
fun(fun(x))
C)C语言函数不可以单独编译
D)C语言中除了main函数,其他函数不可作为单独文件形式存在
(7)以下叙述中错误的是。
A)用户定义的函数中可以没有return语句
B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C)用户定义的函数中若没有return语句,则应当定义函数为void类型
D)函数的return语句中可以没有表达式
(8)下列关于函数形参和实参的叙述中正确的是。
A)函数的实参和其对应的形参共占同一存储单元
B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元
D)函数的形参和实参分别占用不同的存储单元
(9)下面关于函数参数的说法不正确的是。
A)形参可以使常量、变量或表达式
B)实参可以使常量、变量或表达式
C)在带参函数的定义中,必须指定形参的类型
D)形参应与其对应的实参类型一致
17.宏定义。
(1)#define
N
3
#define
Y(n)
N*n*n3*5+1*5+1
则执行语句:
z=Y(5+1);
后,z的值为21。
A)21B)108C)54D)都不是
(2)#defineS(r)10*r*r
{inta=20,b=20,s;
s=S(a+b);
s);
A)320B)620C)16000D)400
(3)#defineMIN(x,y)(x)<
(y)?
(x):
(y)
{inti,j,k;
i=10;
j=15;
k=10*MIN(i,j);
k);
}//运行结果:
15
(4)设有宏定义:
#defineIsDIV(k,n)((k%n==1)?
1:
0)且变量m已正确定义并赋值,则宏调用:
IsDIV(m,5)&
IsDIV(m,7)为真时所要表达的是
A)判断m是否能被5或者7整除B)判断m是否能被5和7整除
C)判断m被5或者7整除是否余1D)判断m被5和7整除是否都余1
18.指针。
(1)若有语句int*point,a=4;
和point=&
a;
下面均代表地址的一组选项是。
A)a,point,*&
a
B)&
*a,&
a,*point
C)*&
point,*point,&
D)&
*point,point
(2)下面函数的功能是。
sss(char*s,char*t)
{while((*s)&
(*t)&
(*t==*s))
s++,t++;
return(*s-*t);
A)求字符串的长度 B)比较两个字符串的大小
C)将字符串s复制到字符串t中D)将字符串s连接到字符串t中
(3)设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是。
A)k=*p1+*p2;
B)p2=k;
C)p1=p2;
D)k=*p1*(*p2);
(4)已知inta[3][4],*p=a[0];
p+=6;
那么*p和的值相同。
A)*(a+6)B)*(&
a[0]+6)C)*(a[1]+3)D)*(&
a[0][0]+6)
(5)已知函数定义如下:
abcd(char*s1,char*s2)
{
while(*s2++=*s1++);
函数abcd的功能是
A)串复制B)求串长C)串比较D)串反向
(6)若有以下定义
intx[10],*pt=x;
则对数组元素的正确引用是
A)*&
x[10]B)*(x+3)C)*(pt+10)D)pt+3
19.结构体
(1)以下程序的输出结果是。
structst
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&
dt[0],60,&
dt[1],70,&
dt[2],80,&
dt[3]};
{p=aa;
%d"
++p->
(++p)->
++(*p->
y));
A.102020B.506021C.516021D.607031
(2)假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。
A)(*p).next=(*q).next;
free(p);
B)p=q->
next;
free(q);
C)p=q;
D)p->
next=q->
(3)若已经建立下面的链表结构,指针p、q分别指向图中所示结点,则不能将q所指的结点插入到链表末尾的一组语句是。
A)q−>
next=NULL;
p=p−>
p−>
next=q;
B)p=p−>
q−>
next=p−>
C)p=p−>
next=p;
D)p=(*p).next;
(*q).next=(*p).next;
(*p).next=q;
20.文件操作。
(1)利用fseek函数可以实现的操作是。
(2)fread函数的功能是。
(3)fwrite函数的功能是。
二、程序填空题(每空2分,共16分)
(1)给定程序中,函数fun的功能是对N
×
N矩阵,以主对角线为对称线,将对称元素相加并将结果存放在下三角元素中,右上三角元素置0。
例如,若N
=
4,有下列矩阵:
2112132421000
25164738计算结果为:
371600
291132544258320
4221331066598710
#defineN4
{inti,j,a[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10};
\nTheoriginalarray:
for(i=0;
N;
{
%2d"
a[i][j]);
for(i=1;
【1】;
j++)//j<
i
【2】;
//a[i][j]=a[i][j]+a[j][i];
a[j][i]=0;
\nTheresultis:
(2)下面函数是用选择法对n个字符串排序,请填空。
fun(char*str[],intn)
inti,j;
char*p;
5;
i++)
for(j=i+1;
j<
6;
j++)
if(strcmp(*(str+i),【1】)>
0)//*(str+j)
p=*(str+i);
str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言