2C语言程序设计a 卷及答案1Word文档下载推荐.docx
- 文档编号:16393045
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:20.42KB
2C语言程序设计a 卷及答案1Word文档下载推荐.docx
《2C语言程序设计a 卷及答案1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《2C语言程序设计a 卷及答案1Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
voidmain()
{
intx=0,a=0,b=0;
if(x==a+b)printf("
****\n"
);
elseprintf("
####\n"
}
A.有语法错,不能通过编译B.通过编译,但不能连接
C.输出****D.输出####
4.当变量c的值不为2、4、6时,值也为"
真"
的表达式是
A)(c==2)||(c==4)||(c==6)B)(c>
=2&
&
c<
=6)||(c!
=3)||(c!
=5)
C)(c>
c<
=6)&
!
(c%2)D)(c>
(c%2!
=1)
5.以下程序的输出结果是
A) 9B) 10C) 11D) 12
#include<
intmain()
{
intk,j,s;
for(k=3;
k<
7;
k++,k++)
s=5;
for(j=k;
j<
6;
j++)s+=j;
}
printf("
%d\n"
s);
}
6.下列程序执行后的输出结果是()。
inta[3][3],*p,i;
p=&
a[0][1];
for(i=0;
i<
9;
i++)p[i]=i+2;
printf("
a[1][2]);
A.5B.6C.7D.程序有误
7.有以下程序
#include<
string.h>
main()
{charp[]={′a′,′b′,′c′},q[10]={′a′,′b′,′c′};
%d%d\n"
strlen(p),strlen(q));
}
以下叙述中正确的是
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
8.p有以下说明和定义语句
structstudent
{intage;
charnum[8];
};
structstudentstu[3]={{20,"
200401"
},{21,"
200402"
},{19,"
200403"
}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是()。
A.(p++)->
numB.p->
numC.(*p).numD.stu[3].age
9.利用fseek函数可实现的操作是( )。
A.改变文件的位置指针B.文件的顺序读写
C.文件的随机读写D.以上答案均正确
10.
main()
{unsignedchara,b;
a=4|3;
b=4&
3;
printf("
%d%d\n"
a,b);
执行后输出结果是( )。
A.70B.07
C.11D.430
11.下面程序段的运行结果是
char*s="
abcde"
;
s+=2;
%d"
A)cdeB)字符′c′C)字符′c′的地址D)无确定的输出结果
12.有以下程序
voidfun(char*a,char*b)
{while(*a=='
*'
)a++;
while(*b=*a){b++;
a++;
{char*s="
*****a*b****"
t[80];
fun(s,t);
puts(t);
程序的运行结果是
A)*****a*bB)a*bC)a*b****D)ab
13.
设有如下程序段
chars[20]="
Beijing"
*p;
p=s;
则执行p=s;
语句后,以下叙述正确的是
A)可以用*p表示s[0]B)s数组中元素的个数和p所指字符串长度相等
C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相同
14.
有以下程序
voidfun(int*s,intn1,intn2)
{inti,j,t;
i=n1;
j=n2;
while(i<
j){t=s[i];
s[i]=s[j];
s[j]=t;
i++;
j--;
{inta[10]={1,2,3,4,5,6,7,8,9,0},k;
fun(a,0,3);
fun(a,4,9);
fun(a,0,9);
for(k=0;
10;
k++)printf("
a[k]);
\n"
A)0987654321B)4321098765C)5678901234D)0987651234
15.
{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;
i<
12;
i++)c[s[i]]++;
for(i=1;
5;
i++)printf("
c[i]);
A)1234B)2344C)4332D)1123
二、读程序题(1-4题每题2分,5-8题每题3分,共20分)
请把程序的运行结果写在题目右侧。
1.
intmain()
{inti,m=1;
for(i=3;
i>
=1;
i--)
m=(m+1)*3;
m);
2.
intp[7]={11,13,14,15,16,17,18},i=0,k=0;
7&
p[i]%3)
{k=k+p[i];
i++;
k);
3.
structabc{inta,b,c;
};
{structabcs[2]={{4,5,6},{1,2,3}};
intt;
t=s[0].a+s[1].b;
t);
}
4.
intx=2;
voidcude()
{x=x+x+x;
{x=6;
cude();
x);
5.
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
break;
case1:
b++;
case2:
case3:
a=%d,b=%d\n"
6.
voidswap(int*a,int*b)
{int*t;
t=a;
a=b;
b=t;
{inti=3,j=5,*p=&
i,*q=&
j;
swap(p,q);
%d,%d\n"
*p,*q);
7.
#include"
stdio.h"
{inta=-1,b=1,k;
if((++a<
0)&
(b--<
=0))
%d,%d\n"
b,a);
8.
intf(intx)
{inty;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
returny;
{intz;
z=f(3);
z);
三、程序填空(每空2分,共20分)
请将正确的语句直接填在下面横线上。
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
1.找出10个字符串中的最大者。
#defineN10
{charstr[20],s[N][20];
inti;
for(i=0;
N;
i++)
gets(
(1));
strcpy(str,s[0]);
for(i=1;
if(
(2)>
0)strcpy(str,s[i]);
Thebiggeststringis:
\n%s\n"
str);
2.如下程序是从键盘上输入的若干个数并求出最大值。
请填空完成该程序。
voidmain()
{inti;
ints[10],max;
/*Findmax()函数的声明*/
(3);
Input10number:
\n"
/*输入10个数据到s数组中*/
(4);
/*调用Findmax函数*/
(5);
i++)
%4d"
s[i]);
\nthemaxis%d"
max);
intFindmax(intx[],intn)
{intmax,i;
max=x[0];
for(i=1;
n;
if(max<
x[i])
max=x[i];
returnmax;
3.以下程序的功能是:
求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。
请填空。
{intx[10],a[9],i;
i++)scanf("
&
x[i]);
for((6);
i++)
a[i-1]=x[i]+(7);
i++)printf("
%d"
a[i]);
"
4.函数fun的功能是:
判定形参a所指的N×
N(规定N为奇数)的矩阵是否是"
幻方"
,若是,函数返回值为1;
不是,函数返回值为0。
的判定条件是:
矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如,以下3×
3的矩阵就是一个"
:
492
357
816
#defineN3
intfun(inta[N][N])
{
inti,j,m1,m2,row,colum;
m1=m2=0;
for(i=0;
i++)
{j=N-i-1;
m1+=a[i][i];
m2+=a[i][j];
if(m1!
=m2)
return0;
row=colum=__(8)__;
for(j=0;
j++)
{row+=a[i][j];
colum+=a[j][i];
if((row!
=colum)__(9)__(row!
=m1))return0;
return__(10)__;
voidmain()
intx[N][N],i,j;
Enternumberforarray:
scanf("
x[i][j]);
Array:
{
j++)printf("
%3d"
x[i][j]);
if(fun(x))printf("
TheArrayisamagicsquare.\n"
elseprintf("
TheArrayisn'
tamagicsquare.\n"
四、编程题(10*3=30分)
1、将某字符串中ASCII值为偶数的字符删除,使串中剩余字符形成一个新串。
2、假设某一维数组中的数已按由小到大的顺序排列。
a)请删除数组中所有相同的数,只保留一个备份。
b)请输出删除后数组中数据的个数。
c)以上功能请在一个函数内完成。
比如一维数组中的数据是:
2223445666677899101010。
删除后,数组中的内容应该是:
2345678910。
元素个数是9.
3、不经过排序,请找出一个整型数组中第二大的整数,没有也请输出相应信息。
比如说9,8,9,7,6五个数当中第二大的数应该是8。
而5,5,5,5,5这五个数中没有第二大的数。
C语言程序设计A卷答案
一、选择题(15*2=30分)
C
B
A
D
二、1.662.383.64.185.a=2,b=16.3,57.1,08.6
三、
(1)s[i]
(2)strcmp(s[i],str)
(3)intFindmax(intx[],intn)
(4)for(i=0;
i++)scanf("
s[i])
(5)max=Findmax(s,10)
(6)i=1
(7)x[i-1]
(8)0
(9)||
(10)1
四、编程题。
1.
//1分
voidfun(chars[],chart[])//1分
inti,j=0;
strlen(s);
i++)//2分
if(s[i]%2)t[j++]=s[i];
//2分
t[j]=0;
//1分
chara[20],b[20];
gets(a);
fun(a,b);
puts(b);
2.
#defineN80
intfun(inta[],intn)//1分
{inti,j=1;
for(i=1;
if(a[j-1]!
=a[i])
a[j++]=a[i];
//3分
returnj;
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
Theoriginaldata:
i++)printf("
n=fun(a,n);
\nThereare%ddataafterdeleted:
n);
3.
#include"
inta[10]={9,8,9,9,7,10,10,7,8,3};
inti,max,second;
max=second=a[0];
if(a[i]>
max)
second=max;
max=a[i];
}//6分
if(max>
second)printf("
Thesecondnumberis%d"
second);
elseif(max==second)printf("
Nosecondnumber."
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2C语言程序设计a 卷及答案1 语言程序设计 答案