C语言模拟试题Word文档下载推荐.docx
- 文档编号:19607702
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:14
- 大小:18.85KB
C语言模拟试题Word文档下载推荐.docx
《C语言模拟试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
default:
noway!
"
);
isone.istwo.way!
isway!
4.下面的程序将输出:
inta[5]={1,2,3};
intk,j;
for(k=1;
k<
4;
k++)
a[k]++;
for(j=0;
j<
5;
j++)
%d"
a[j]);
3410341034003400
5.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是:
inta[10];
int*p;
p=a;
[2]=1;
[1]=1;
C.*(p++)=1;
D.*(++a)=1;
6.下面程序将输出:
voidadd(inta)
a++;
return;
intk;
k=;
add(k);
k);
A.B.C.3D.4
7.下列循环结构中,不是无限循环的是:
A.for(i=1,s=0;
;
i++)B.i=10;
s=s+i;
while
(1)
{i=i%10+1;
if(i>
10)break;
C.inti=0;
D.i=100;
do{++i;
}while(i>
=0);
while(++i%2)i++;
8.若已知inta[3][4],*p;
p=(int*)a;
那么对数组a的第2行第2列的正确引用是:
[2][2][5][5][1][1]
9.已知:
int(*p)[20];
且p的值是0X5000,请问表达式p+2的值是多少?
A.0X5050B.0X5002C.0X5004D.0X5040
10.若有说明inta[2][2];
那么,下面正确的C赋值语句是:
=2;
[1]=2;
[1]={1,2};
[0][1]=a[1][0];
11.设x为int型变量,则执行以下语句后,x的值为
x=10;
x+=x-=x-x;
A.10B.20C.40D.30
12.已知x=43,ch='
A'
y=0;
则表达式(x>
=y&
&
ch<
'
B'
!
y)的值是:
A.0B.语法错C.1D."
假"
13.下面能正确进行字符串赋值操作的语句是:
A.chars[5]={"
ABCDE"
B.chars[]={'
'
C'
D'
E'
C.char*s;
s="
ABCDEF"
D.char*s;
scanf("
,s);
14.已知:
inta[3][4],*p=&
a[0][0];
p+=6;
那么*p和_____的值相同.
A.(a+6)B.*(&
a[0]+6)C.a[2][2]D.*(&
a[0][0]+6)
15.设有以下说明和定义:
typedefunion{longi;
intk[4];
charc;
}DATE;
structdate{intcat;
DATEcow;
doubledog;
}too;
DATEmax;
则下列语句的执行结果是
printf("
sizeof(structdate)+sizeof(max));
A.26B.30C.18D.8
16.设有如下定义:
int*(*ptr)();
则以下叙述中正确的是
A.ptr是指向一维组数的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是指向函数的指针,该函数的返回值是指向int型数据的指针
17.若二维数组a有m列,则在a[i][j]之前的元素个数为______
A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1
18.以下程序运行后,输出结果是
A.13B.51C.11D.53
intd=1;
fun(intp)
{intd=5;
p=d;
p);
main()
{inta=3;
fun(a);
d=a;
%d\n"
d);
}
19.以下程序运行后,如果从键盘上输入ABCDE<
回车>
,则输出结果为
A.4B.7C.6D.5
#include<
>
func(charstr[])
{intnum=0;
while(*(str+num)!
='
\0'
)num++;
return(num);
main()
{charstr[10],*p=str;
gets(p);
func(p));
}
20.执行以下程序段后,m的值为
inta[2][3]={{1,2,3},{4,5,6}};
intm,*p;
p=&
m=(*p)*(*(p+2))*(*(p+4));
A.15B.14C.13D.12
21.已知定义了两个结构体变量,下面是正确的语句是:
struct{intx;
charname[10];
floatmark;
}S1,S2;
A.S1={5,”yang”,};
B.S1=S2;
C.=;
=;
=;
D.strcpy(S1,S2);
22.下面这段程序运行的结果是:
inta=0x4145;
char*p;
p=(char*)&
a;
*p+=1;
printf(“%X”,*p);
A.46B.42
23.下面这段程序运行的结果是:
charstr[]=”%#X”;
inta=50;
printf(str,a++);
D.有语法错
24.下面哪个语句是函数的原型声明
A.int(*f)(inta,intb);
B.intf(inta,5);
C.intf(inta,intb);
D.intf(inta=5,intb=6);
25.已知inta=0XF11F,b;
执行完下面的操作后,a的值是多少?
b=(a&
0xFF00)>
A.0X0FF1B.0XF11FD.0XFFF1
26.有以下程序:
inta=2;
intf(int*a)
{return(*a)++;
{ints=0;
{inta=5;
s+=f(&
a);
s);
}
执行后输出结果是。
B.9
27.设有以下语句:
typedefstructS
{intg;
charh;
}T;
则下面叙述中正确的是。
A.可用S定义结构体变量B.可以用T定义结构体变量
是struct类型的变量 是structS类型的变量
28.有以下程序:
{unsignedchara,b;
a=4|3;
b=4&
3;
%d%d\n"
a,b);
A.70710
29.有以下程序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;
i<
n-1;
i+=2)
for(j=i+2;
n;
j+=2)
if(a[i]<
a[j]){t=a[i];
a[i]=a[j];
a[j]=t;
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(k,10);
10;
i++)printf("
%d,"
k[i]);
\n"
其输出结果是。
A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10,D.1,10,3,8,5,6,7,4,9,2,
30.有以下程序:
voidf(inta[],inti,intj)
{intt;
if(i<
j)
{t=a[i];
a[i]=a[j];
f(a,i+1,j-1);
{inti,k[5]={1,2,3,4,5};
f(k,0,4);
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,2,3,4,5,
二、阅读程序,将运行结果写在右边空白处(共2道题,每题5分,共10分)
程序1
#include<
intf(intn)
{staticints=1;
while(n)s*=n--;
returns;
{inti,j;
i=f(3);
j=f(5);
\nTheoutputis:
i=%d,j=%d\n"
i,j);
程序2
structdata_tag
intx;
structdata_tag*next;
};
typedefstructdata_tagDATA;
voidmain()
DATANode[5];
DATA*p;
inti;
clrscr();
i++)
Node[i].x=i*2+1;
Node[0].next=&
Node[3];
Node[3].next=&
Node[2];
Node[2].next=&
Node[4];
Node[4].next=&
Node[1];
Node[1].next=NULL;
p=Node;
while(p!
=NULL)
p->
x);
p=p->
next;
三、改错题(每道题有5个错,每改对一个给2分,共3道题,30分)
#include″″
inta,b;
scanf(″%d%d″,&
a,b);
f=float(a/b);
printf(″a/b=%d″,f);
intCompareInt(inta,intb)
if(a>
b)
return1;
elseif(a=b)
return0;
elseif(!
a>
=b)
return-1;
unsignedintk;
inputtwonumber,likethis"
12,13\"
:
scanf("
%d,%d"
&
a,&
b);
k=CompareInt(a,b);
switch(k)
%d>
case0:
%d=%d"
break;
case-1:
printf("
%d<
getch();
程序3
longStrToNum(char*str)
longresult=0;
k=0;
while(str[k]!
=0)
result=result*10+str[k];
returnresult;
char*str;
longl;
for(i=0,i<
6;
i++)
*(str+i)="
1"
+i;
l=StrToNum(str);
%ld"
l);
参考答案:
一、选择题
1~5CBDAB6~10CCBAD11~15BCCDA16~20DBDDA
21~25BACCB26~30CBACA
二、读程序写结果
TheOutputis:
i=6,j=720
17593
三、改错题(双下划线是修改后的错误之处)
程序1
floatf;
%d%d"
f=(float)a/b;
a/b=%f"
f);
elseif(a==b)
elseif(a<
intk;
inputtwonumber,likethis\"
result=result*10+str[k++]-'
0'
charstr[6];
for(i=0;
i<
*(str+i)='
1'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟 试题