南工社团招生试题.docx
《南工社团招生试题.docx》由会员分享,可在线阅读,更多相关《南工社团招生试题.docx(7页珍藏版)》请在冰豆网上搜索。
![南工社团招生试题.docx](https://file1.bdocx.com/fileroot1/2023-1/27/60735425-a239-4ba4-9172-960401b61870/60735425-a239-4ba4-9172-960401b618701.gif)
南工社团招生试题
南工社团招生试题
一.选择题(每题1分,共10分)
1.假设变量a,b均为整型,表达式(a=5,b=2,a>b?
a++:
b++,a+b)的值是()
A7B8C9D2
2.设有如下程序段,下面描述中正确的是()
intk=10;while(k=0)k=k-1;
A循环执行一次B循环是无限循环
C循环体语句一次也不执行D循环体语句执行一次
3.以下函数调用语句中含有()个实参
func((e1,e2),(e3,e4,e5));
A2B3C5D语法错误
4.下面选项中正确的赋值语句是(设chara[5],*p=a;)()。
Ap="abcd";Ba="abcd";C*p="abcd";D*a="abcd";
5.设有以下程序段,则值为6的表达式是()。
structst{intn;structst*next;};
staticstructsta[3]={5,&a[1],7,&a[2],9,0},*p;
p=&a[0];
Ap++->nB++p->nCp->n++D(*p).n++
6.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;
A125,6,31,1B125,6,1,20
C125,6.666666,31,20D125.534,6.666666,2,20
7.设有说明int(*ptr)();其中标识符ptr是()。
A是一个指向整形变量的指针
B是一个指针,它指向一个函数值是int的函数
C是一个函数名
D定义不合法
8.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。
Ap=a;B*p=a[0];Cp=&a[0];Dp=&a;
9.在C语言程序中,以下说法正确的是( )。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的调用都不可以嵌套
D函数的定义和函数的调用都可以嵌套
10.以下程序的输出结果为()。
#defineADD(x)x*x
main()
{inta=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
Ad=70Bd=80Cd=140Dd=700
二.判断题(每题2分,共10分)
1.函数的递归调用不过是一个函数直接或间接地调用它自身()
2.函数strlen("ASDFG\n")的值是7()
3.char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
()
4.若有定义:
char*p(chara[10]);则p是函数名。
()
5.通过return语句,函数可以带回一个或一个以上的返回值。
()
6.参加位运算的数据可以是任何类型的数据。
()
7.C语言把文件看作是一个字符(字节)的序列。
()
8.若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21。
()
9.若有定义:
chars[]="china";则TurboC系统为数组s开辟6个字节的内存单元。
()
10.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
()
三.写出下列程序运行的结果(每题5分,共10分)
1.main()
{inta[6]={10,20,30,40,50,60},i;
invert(a,0,5);
for(i=0;i<6;i++)printf(“%d,”,a[i]);
printf(“\n”);
}
invert(ints[],inti,intj)
{intt;
if(i{invert(s,i+1j-1);
t=s[i];s[i]=s[j];s[j]=t;
}
}
2.main()
{charstr[]=“TheCprogram”,c;
inti;
for(i=2;(c=str[i])!
=‘\0’;i++)
{switch(c)
{case‘g’:
++i;break;
case‘o’:
continue;
default:
printf(“%c”,c);continue;
}
printf(“*”);
}
printf(“\n”);
}
四.阅读下列程序,在处填入适当内容,使程序完整(每空4分,共20分)
1.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#defineN10
charstr[N];
main()
{inti,flag;
for(flag=1;flag==1;)
{scanf("%s",str);
flag=0;
printf("\n");
}
sort(___
(1)___);
for(i=0;iprintf("%c",str[i]);
printf("\n");
}
sort(charstr[N])
{inti,j;
chart;
for(j=1;jfor(i=0;(i='\0');i++)
if(str[i]>str[i+1])
{t=str[i];
____
(2)____;
____(3)____;
}
}
2.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。
(本程序中二阶矩阵用一维数组来表示。
)
例如,矩阵为:
3003
2573
1042
则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。
add(intm,intn,intarr[])
{inti,j,sum=0;
for(i=0;ifor(j=0;jsum=sum+(4);
for(j=0;jfor(i=1;(5);i++)
sum=sum+arr[i*n+j];
return(sum);
}
五.编程题(每题25分,共50分)
1任意输入一个偶数,请将它分解为两个素数之和
2设有字母a,b,c,请编程用递归的方法产生有这些字母组成的且长度为n的所有可能的字符串。
例如:
输入n=2则输出aaabacbabbbccacbcc
参考答案
一.选择题(每题1分,共10分)
BCAABBBDBA
二.判断题(每题2分,共10分)
对错错对错
错对对对对
三.写出下列程序运行的结果(每题5分,共10分)
1.605040302010
2.eCpr*am
四.(每空4分,共20分)
(1)str
(2)str[i]=str[i+1](3)str[i+1]=t
(4)arr[i*n+j]或者arr[i*10+j]
(5)i五.编程题(每题25分,共50分)
1.#include
intmain()
{
intj,k,n,m;
printf("Pleaseentern:
");
scanf("%d",&n);
for(j=2;j{
for(k=2;kif(j%k==0)break;
if(k>=j)
{
m=n-j;
for(k=2;kif(m%k==0)break;
if(k>=m)
{
printf("%4d=%4d+%4d\n",n,j,m);
break;
}
}
}
return0;
}
2.#include
inta[10];
fun(int*p,intm,intn)
{
inti;
for(i=0;i{
*p=i;
if(n>1)fun(p+1,m,n-1);
elseprint(p);
}
}
print(int*p)
{
int*q;
for(q=a;q<=p;q++)
printf("%c",'a'+*q);
printf("\t");
}
intmain()
{
intm,n;
printf("\nEntermn:
");
scanf("%d%d",&m,&n);
fun(a,m,n);
}