题号:1
成都创新互联公司是一家专业提供上蔡企业网站建设,专注与成都网站制作、成都做网站、HTML5建站、小程序制作等业务。10年已为上蔡众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
以下正确的说法是( )
选项:
a、用户若需要调用标准库函数,调用前必须重新定义
b、用户可以重新定义标准库函数,若如此,该函数将失去原有意义
c、用户系统根本不允许用户重新定义标准库函数
d、用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动寻找该文件
本题答案为d,无论是标准库函数还是什么函数,都是函数,都允许用户重新定义和使用,使用的时候只需要用#include 包括进来就可以了,也就是预编译命令。其中#include就是预编译命令。
题号:2
以下正确的函数定义形式是( )
选项:
a、double fun(int x,int y)
b、double fun(int x
c、int y)
d、double fun(int x,int y)
e、doubel fun(int x
f、int y)
函数的定义规则是这样的: (函数参数用逗号隔开){函数体}
函数声明的规则是这样的: (函数参数用逗号隔开);
综上所述,该题没有正确答案,唯一接近正确答案的为ad。
题号:3
以下不正确的说法为( )
选项:
a、在不同函数中可以使用相同名字的变量
b、形式参数是局部变量
c、在函数内定义的变量只在本函数范围内有效
d、在函数内的复合语句中定义的变量在本函数范围内有效
C中有一个关键字为extern,专门把局部变量转为全局变量,所以C是错误的。
本题答案为C
题号:4
建立函数的目的之一,以下正确的说法是( )
选项:
a、提高程序的执行效率
b、提高程序的可读性
c、减少程序的篇幅
d、减少程序文件所占内存
本题答案为a,
函数的增加,
b会使得程序的可读性增加,这个可以理解,模块化了,当然可读性增加了
c,多次调用一个函数即可,不用重复的写代码,这个也可以理解
d,重复的代码既然少了,整个程序的大小自然也小了,当然减少了程序文件所占的内存
至于a的效率提高了,这个不对,因为函数多了,会频繁的进行压栈出栈的操作,加大cpu的工作负荷,整个程序的效率变低了。
题号:5
C语言规定,函数返回值的类型是由( )所决定。
选项:
a、return语句中的表达式类型
b、调用该函数时的主调函数类型
c、调用该函数是系统临时指定
d、在定义该函数时所指定的函数类型
这个可以参考第二题,函数的定义规则,当然是由定义的时候确定的了。
本题答案为d。
题号:6
凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )
选项:
a、auto
b、static
c、extern
d、register
这个题目容易,没有指定当然是自动指定的了。
本题答案为a。
另外一个小知识,我们平常看到的int a,b,c;实际上省略了auto,全部应该是 auto int a,b,c;
题号:7
以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub
(10,5,a);sub(7,a,b);sub(a,b,c);printf("%4d,%4d,%4d",a,b,c);}
选项:
a、5, 2, 3
b、 -5, -12, -7
c、 -5, -12, -17
d、 5, -2, -7
void sub (int x,int y,int *z)
{
*z=y-x;
}
main()
{
int a,b,c;
sub(10,5,a); 执行完这句a的值为-5;
sub(7,a,b);执行完这句b的值为-12;
sub(a,b,c);执行完这句c的值为-7
printf("%4d,%4d,%4d",a,b,c);
}
答案为b;
题号:8
若用数组名作为函数调用的实参,传递给形参的是( )
选项:
a、数组的首地址
b、数组第一个元素的值
c、数组中全部元素的值
d、数组元素的个数
本题答案为a
数组名为数组的首地址,也是数组第一个元素的值的地址。数组名是一个地址。
题号:9
若使用一位数组名作为函数实参,则以下正确的说法是( )
选项:
a、必须在主调函数中说明此数组的大小
b、实参数组类型与形参数组类型可以不匹配
c、在被调函数中,不需要考虑形参数组的大小
d、实参数组名与形参数组名必须一致
本题答案为a,
必须在主调函数中定义该数组的大小。也就是该数组大小应该被提前设定好。
int a[10]可以作为参数,int a[x]不可以作为参数。
题号:10
如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是( )
选项:
a、只在该复合语句中有效
b、只在该函数中有效
c、在本程序范围内均有效
d、为非法变量
答案为
1、 函数调用:strcat(strcpy(str1,str2),str3)的功能是________。
C) 将串str2复制到串str1中后再将串str3连接到串str1之后
2、 若有以下调用语句,则正确的fun函数首部是
main()
{ ∶
∶
int a;float x;
∶
∶
fun(x,a);
∶
∶
}
B) void fun(float a,int x)
3、 有如下程序
int func(int a,int b)
{ return(a+b); }
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r); }
该程序的输出结果是__________。
D) 15
4、 函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+……+1/(n*n)
请你在下面程序中的划线部分填入________,完成求π的功能。
#include "math.h"
double pi(long n)
{ double s=0.0; long i;
for(i=1;i=n;i++) s=s+________;
return (sqrt(6*s)); }
A) 1.0/i/i
5、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递
方式是________。
B) 单向值传递
6、 对于C语言的函数,下列叙述中正确的是________。
A) 函数的定义不能嵌套,但函数调用可以嵌套 (这答案有待斟酌)
7、 函数f的功能是:测定字符串的长度,空白处应填入________。
int f(char s[ ])
{ int i=0;
while(s[i]!='\0') i++;
return (________); }
main( )
{ printf("%d\n",f("goodbye!")); }
B) i
8、 若主调用函数类型为double,被调用函数定义中没有进行函数类型
说明,而return语句中的表达式类型为float型,则被调函数返回
值的类型是________。
C) double 型
9、 以下叙述中,错误的是________。
D) 形参可以是常量、变量或表达式
10、 以下叙述中,不正确的是________。
B) 在main函数体内定义的变量是全局变量
A return 'A';
这个是可以的,因为char 类型在c语言里是可以与int 计算的。
B return 3.14;
这个是不可以的,答案就选B.
3.14是浮点常量。不是int,类型不匹配。
C return 0
这个是可以的,0 符合int类型数据输出。
D return (int)3.14;
这个也是可以的,int对3.14 进行了强制类型转化,把浮点类型转为int类型
求5个字符串的回文个数
#include stdio.h
#include string.h
int main()
{
char a[5][20];
int i,j,k=0,huiwen=0,n=0;
printf("请输入你要判断的字符串!\n");
for(i=0;i5;++i)
scanf("%s",a[i]);
for(j=0;j5;++j)
{
k=0;
for(i=0,n=strlen(a[j]);in/2;++i)
{
if(a[j][i]!=a[j][n-1-i])
{
k++;
break;
}
}
if(k==0)
huiwen++;
}
printf("有%d回文\n",huiwen);
return 0;
}
求数组的最大和次最大 和最大公约数
#include stdio.h
#define N 10
int main()
{
void max(int *a);
void gongyueshu(void);
int a[N];
int i,n;
printf("\t\t1 [求数组最大值和次最大值]\t2 [求公约数]\n");
scanf("%d",n);
switch(n)
{
case 1:{
printf("请输入10个数字sn");
for(i=0;iN;++i)
scanf("%d",a+i);
max(a);//该函数是求最大值和次最大值
}
case 2:{
printf("请输入两个数求最大公约数 ");
gongyueshu();//该函数是求最大公约数
}
return 0;
}
}
void max(int *a)
{
int t,i,j,k;
for(i=1;iN;++i)
{
for(j=0;jN-i;++j)
if(a[j]a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
printf("最大值是 %d 次最大值是 %d\n",a[0],a[1]);
}
void gongyueshu(void)
{
int i,j,k,r,t;
scanf("%d",i);
scanf("%d",j);
if(ij)
{
t=i;
i=j;
j=t;
}
while(j!=0)
{
r=i%j;
i=j;
j=r;
}
printf("公约数是%d\n",i);
}