c语言问题? c语言常见问题集

1446℃ MURIEL

c语言问题?c语言常见问题集

c语言的问题

我开始确实没考虑到,楼主说的是不定参数,里面可以有多个不同参数,下面的链接里有详细的说明。学了这么久居然没发现,哎真是孤陋寡闻了!

不定参数在C语言中的应用实例:不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多。除了格式化输出之外,我实在没看到多少应用。主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替换它。尽管如此,既然大家对它比较感兴趣,我就简单总结一下它的使用和需要注意的常见问题。

刚学C语言的时候,一般人都会首先接触printf函数。通过这个函数,你可以打印不定个数的变量到屏幕,如:

printf("%d", 3);

printf("%d,%d",3,4);

上述代码看似简单,实际上却需要我们解决许多问题。在我们设计printf的时候,我们是不知道到底会传入几个参数的。在这种未知的情况下,我们需要解决下面几个问题:

怎么告诉printf我们会传入几个参数

printf怎么去访问这些参数

复制的一部分

C语言的问题~~~~~~~~~~~~~~~~

:1:21: error: conio.h: 没有该文件或目录

: In function ‘fun’:

:12: error: subscripted value is neither array nor pointer

:12: error: subscripted value is neither array nor pointer

:13: error: subscripted value is neither array nor pointer

:13: error: subscripted value is neither array nor pointer

:13: error: subscripted value is neither array nor pointer

:13: error: subscripted value is neither array nor pointer

c: In function ‘main’:

c:23: warning: passing argument 1 of ‘fun’ makes integer from pointer without a cast

:6: note: expected ‘int’ but argument is of type ‘int *’

你这错误也太多了。

按楼上的说法修改void fun( int a[], int n ) 后可以运行

83 86 77 15 93 35 86 92 49 21

62 27 90 59 63 26 40 26 72 36

**** after sort ****

15 21 26 26 27 35 36 40 49 59

62 63 72 77 83 86 86 90 92 93

关于c语言的问题

输入屏幕时要这样输:1,2,3

不能这样输:1 2 3

逗号不能省略,为什么呢?这是你的程序是这样的scanf("%d,%d,%d",&a,&b,&c);

你要按照你的引号里面的格式输入。

当然你可以改为:scanf("%d%d%d",&a,&b,&c);

这样就可以输入:1 2 3

这个程序的最后运行结果是输出a/b/c中最大的那个。

c语言问题。。。

1、 有如下程序

int func(int a,int b)

{ return(a+b); }

main()

{ int x=2,y=5,z=8,r;

r=func((x-y),z);

printf("%d\n",r); }

该程序的输出结果是_____C_____。

A) 10 B) 13

C) 5 D) 15

2、 以下函数返回a数组中最小值所在的下标,在划线处应

填入的是________。

fun( int a[],int n)

{ int i,j=0,p;

p=j;

for(i=j;i<n;i++)

if(a[i]<a[p])_________D______;

return (p); }

A) i=p B) a[p]=a[i]

C) p=j D) p=i

3、 以下说法中正确的是___C_____。

A) C语言程序总是从第一个定义的函数开始执行

B) 在C语言程序中,要调用的函数必须在main()函数中定义

C) C语言程序总是从main()函数开始执行

D) C语言程序中的main()函数必须放在程序的开始部分

4、 下面程序的输出是___B______。

int m=13;

int fun(int x,int y)

{int m=3;

return(x*y-m); }

main()

{int a=7,b=5;

printf("%d\n",fun(a,b)/m); }

A) 1 B) 2

C) 7 D) 10

5、 以下函数func()的功能是:使具有n个元素的一维数组b的每个元素的值

都增加2,划线处应填入________。

func(int b[ ],int n)

{ int ;

for(i=0;i<n;i++) ____D______; }

A) b[i++] B) b[i]++

C) b[i+=2] D) b[i]+=2

6、 函数f的功能是:测定字符串的长度,空白处应填入________。

int f(char s[ ])

{ int i=0;

while(s[i]!='\0') i++;

return (____B____); }

main( )

{ printf("%d\n",f("goodbye!")); }

A) i-1 B) i

C) i+1 D) s

7、 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合

语句中定义了一个变量,则该变量____B____。

A) 为全局变量,在本程序文件范围内有效

B) 为局部变量,只在该函数内有效

C) 为局部变量,只在该复合语句中有效

D) 定义无效,为非法变量

8、 对以下程序,正确的说法是___B_____。

sub (char x,char y)

{ int z; z=x%y; return z; }

main( )

{ int g=5,h=3,k;

k=sub(g,h);

printf("%d\n",k); }

A) 实参与其对应的形参类型不一致,程序不能运行

B) 被调函数缺少数据类型说明,程序不能运行

C) 主函数中缺少对被调函数的说明语句,程序不能运行

D) 程序中没有错误,可以正常运行

9、 请读程序:

#include <stdio.h>

f(in b[ ], int n)

{ int i, r=0;

for(i=0; i<=n; i++) r=r+b[i];

return r; }

main()

{ int x, a[]={ 2,3,4,5,6,7,8,9};

x=f(a, 3);

printf("%d\n",x); }

上面程序的输出结果是____B____。

A) 20 B) 14

C) 9 D)5

10、 以下叙述中错误的是__A______。

A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值

B) 在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C) 在C中,外部变量的隐含类别是自动存储类别

D) 在C中,函数中的静态变量可以赋初值,只在编译时赋一次初值