01C语言笔试试题1Word文件下载.docx
- 文档编号:4161885
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:14
- 大小:22.50KB
01C语言笔试试题1Word文件下载.docx
《01C语言笔试试题1Word文件下载.docx》由会员分享,可在线阅读,更多相关《01C语言笔试试题1Word文件下载.docx(14页珍藏版)》请在冰点文库上搜索。
stdio.h>
voidmain()
{
chara='
1'
b='
2'
;
printf("
%c,"
b++);
%d\n"
b-a);
}
程序运行后的输出结果是(C)。
A)3,2B)50,2
C)2,2
D)2,50
7.有以下程序
{
intm=12,n=34;
%d%d"
m++,++n);
%d%d\n"
n++,++m);
A)12353514B)12353513
C)12343514
D)12343513
8.已有定义intk=2;
int*ptr1,*ptr2,且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B)
A)k=*ptr1+*ptr2;
B)ptr2=k;
C)ptr1=ptr2;
D)k=*ptr1*(*ptr2);
9若有定义inti=2,a[10],*p=&
a[i];
则与*p++等价的是(A)。
A)a[i++]B)a[i]++C)a[i]D)a[++i]
10.有定义inta=3,b=4,c=5;
执行完表达式a++>
--b&
b++>
c--&
++c后,a,b,c的值分别为(B)。
A)345B)435C)444D)445
11.已知:
intx=1,y=2,z=0;
则执行:
z=x>
y?
10:
20后,z的值为(B)。
A)10B)20C)1D)2
12.若已定义x和y为double类型,则表达式x=2,y=x+10/4的值是(C)。
A)2B)4C)4.0D)4.5
13.有定义语句:
intb;
charc[10];
则正确的输入语句是(B)。
A)scanf("
%d%s"
&
b,&
c);
B)scanf("
b,c);
C)scanf("
b,c);
D)scanf("
b,&
14.在一个源程序文件中定义的全局变量,其作用域为(B)。
A)定义所处的整个源程序文件B)从定义处开始到本源程序文件结束
C)整个主函数D)所处C程序的所有源程序文件中
15.在下面C语言的函数说明语句中,正确的是(A)。
A)intfun(intx,inty);
B)intfun(intx,y);
C)intfun(x,y);
D)intfun(intx;
inty);
16.有以下程序
intm,n,p;
scanf("
m=%dn=%dp=%d"
m,&
n,&
p);
%d%d%d\n"
m,n,p);
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A)。
A)m=123n=456p=789
B)m=123
n=456
p=789
C)m=123,n=456,p=789
D)123
456
789
17.已知E的ASCII码是69,则执行以下语句的结果是(C)
printf("
%c"
'
E'
-'
8'
+'
5'
);
A)66B)AC)BD)E
18.有定义:
char*s=”\t\”Name\\Address\”\n”;
,那么strlen(s)等于(B)。
A)15B)16
C)17D)18
19.设有定义:
intm=1,n=-1;
则执行语句printf("
(m--&
++n));
后的输出结果是(B)
A)–1B)0C)1D)2
20.有以下程序
inta,b,d=25;
a=d/10%9;
b=a&
(-1);
%d,%d\n"
a,b);
程序运行后的输出结果是(B)。
A)6,1
B)2,1
C)6,0
D)2,0
二.基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各小题的空白处。
每空2分,共10分)
1.函数main(intargc,char*argv[])中argc表示的是______①____。
2.在C语言中,没有字符串变量,只有字符变量,字符串都存储在以②为结束符的字符数组中。
3.一个函数调用语句为fun((e1,e2,e3),(e4,e5),e6);
,其实参个数为__③____。
4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与___④____组成配对关系。
5.当程序打开一个文件时,系统就要在内存中建立一个与该文件对应的⑤结构体变量,存储该文件的有关信息。
①F②B③J④A⑤K
备选项:
(A)空格
(B)'
\0'
(C)'
\n'
(D)在其之前未配对的if
(E)参数字符串
(F)命令行参数的个数
(G)6
(H)在其之前最近的未配对的if
(J)3
(K)FILE
(L)EOF
(M)命令行参数的字符数
三.程序填空题。
(每空2分,共20分)。
1.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计计算出平均成绩。
请填空。
floatsum=0.0,ave,a;
intn=0;
Entermark\n"
%f"
a);
while(a>
=0.0)
{
sum=sum+a;
_____①_________;
//n++
}
ave=sum/n;
ave=%f\n"
ave);
}
2.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
charstr[]={"
abcdefg"
};
char*p1,*p2,ch;
p1=str;
p2=str;
while(*p2!
='
)p2++;
____②________;
//p2--
while(p1<
p2)
ch=*p1;
*p1=*p2;
*p2=ch;
____③_____;
//p1++
p2--;
puts(str);
3.以下程序中,fun函数的功能是求m行4列二维数组每行元素中的最大值。
intfun(int,int,int(*)[4]);
inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},i;
for(i=0;
i<
3;
i++)printf("
%4d"
fun(④));
//i,4,a
printf("
\n"
intfun(intm,intn,inta[][4])
intj,x;
x=a[m][0];
for(j=0;
j<
n;
j++)if(_⑤__)x=a[m][j];
//x<
a[m][j]
returnx;
4.下面的程序是用来在数组table中查找x,若数中存在x程序输出数组中第一个等于x的数组元素的下标,否则输出-1。
inttable[10]={12,34,54,23,45,33,78,87,59,97},x;
intlookup(intt[],intkey,intn)
intk;
for(k=0;
k<
k++)
if(t[k]==key)⑥;
//break
if( ⑦ )k=-1;
//k>
=n
returnk;
%d"
x);
x_location:
lookup(table,x,10));
5.下列函数insert实现在一维数组v中插入一个元素x,且要求将该元素插入到下标为i位置,数组原有下标为i及以后的元素都将向后移动一个元素的位置,i>
=0。
如果i大于等于元素的个数,则x插到数组的末尾。
原有的元素个数存放在指针n所指向的变量中,插入后元素个数加1。
主函数验证了该函的功能。
voidinsert(intv[],int*n,intx,inti);
inta[20]={1,2,3,4,5,6,7};
intkey=11;
intn=7,*p=&
insert(a,p,key,14);
for(key=0;
key<
*p;
key++)printf("
%d"
a[key]);
putchar('
n);
voidinsert(intv[],int*n,intx,inti)
intj;
if(___⑧____)//i<
*n
for(j=*n-1;
j>
=i;
____⑨____)//j--
_____⑩____=v[j];
//v[j+1]
else
i=*n;
v[i]=x;
(*n)++;
四.阅读程序题(每小题5分,共30分)
1.下面程序的运行结果为:
( f=6 )
#include<
intf(intnum,intrun)
staticintfact,i;
if(run==0)
fact=1;
i=1;
fact*=i;
if(++i<
=num)
f(num,1);
return(fact);
inti=0;
f=%d\n"
f(3,0));
2.下面程序的运行结果是:
(63)
main()
inta[]={1,3,5,7,9},b[4]={2,4,6,8},*p=a,*q=b;
p+=2;
q++;
*p=(*q)%3+5;
*(++q)=*(p--)-3;
*(p+1));
q[0]);
3.运行程序时输入-6931,则输出结果是:
(-1396)
voidprintopp(longintn)
if(n==0)return;
while(n)
{
if(n>
0||i==0)
printf("
%1d"
n%10);
else
%ld"
-n%10);
i++;
n/=10;
}
longintn;
n);
printopp(n);
4.下面程序的运行结果是:
(34)
#defineN2
#defineY(n)((N+1)*n)
intz;
z=2*(N+Y(5));
z);
5.以下程序的运行结果为( 9)
longfun(intn);
%ld\n"
fun(4));
longfun(intn)
longs;
if(n==1||n==2)
s=2;
s=n+fun(n-1);
returns;
6.以下程序的运行结果为(4321)
voidfun(int*x,int*y);
inta[]={1,2,3,4},j,x=0;
for(j=0;
4;
j++)
fun(a,&
x);
voidfun(int*x,int*y)
staticintt=3;
*y=x[t];
t--;
五.编程序(每小题10分,共20分)
1.编写程序求下面数列
的前20项之和。
参考程序:
doublex,sum;
inti;
for(i=1,x=2,sum=0;
=20;
i++)
sum=sum+x;
x=1+1/x;
Front20termsof2/1+3/2+5/3+……=%lf\n"
sum);
2.函数fac的原型为longfac(intk);
,函数利用静态变量实现:
连续以1,2,3,……,n为参数调用该函数后,函数最后返回n!
。
要求编制该函数并用相应的主函数进行测试。
参考程序:
longfac(intn);
intn,j;
longff;
for(j=2;
=n;
ff=fac(j);
n!
=%ld\n"
ff);
longfac(intn)
staticlongff=1;
ff*=n;
returnff;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 语言 笔试 试题
![提示](https://static.bingdoc.com/images/bang_tan.gif)