(c语言数组怎么用)有如下程序:输出数组中的全部元素。

清华大学出版社向华主编《C语言程序设计》课件第八章
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
清华大学出版社向华主编《C语言程序设计》课件第八章
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口等 级:新手上路
哇哇~没人么
等 级:新手上路
等 级:新手上路
怎么没人理啊
等 级:新手上路
等 级:新手上路
等 级:新手上路
等 级:新手上路
#include&stdio.h&
void main()
{ int a[9],b[9],i,j;
&&printf(&enter %d numbers\n&,9);
&&for(i=0;i&9;i++)
&&&scanf(&%d&,&a[i]);
&&printf(&enter %d numbers\n&,9);
&&for(j=0;j&9;j++)
&&&scanf(&%d&,&b[j]);
&&for(i=0;i&9;i++)
&&&{ for(j=0;j&9;j++)
&&&&&&{ if(a[i]==b[j]);
&&&&&&printf(&%5d&,a[i]);
&&for(j=0;j&9;j++)
&&&{ for(i=0;i&9;i++)
&&&&&&{ if(b[j]==a[i]);
&&&&&&&&printf(&%4d&,b[j]);
&&printf(&\n&);
}&&& 对吗?
来 自:向日葵幼儿园
等 级:黑侠
帖 子:306
专家分:586
&&得分:10&
#include&stdio.h&
void main()
&&& int a[9],b[9],i,j;
&&& printf(&enter %d numbers\n&,9);
&&& for(i=0;i&9;i++)
&&&&&&&&scanf(&%d&,&a[i]);
&&& printf(&enter %d numbers\n&,9);
&&& for(j=0;j&9;j++)
&&&&&&&&&scanf(&%d&,&b[j]);
&&for(i=0;i&9;i++)
&&&&&&k=0;
&&&&&&for(j=0;j&9;j++)
&&&&&&{ if(a[i]!=b[j])
&&&&&&&&&&&&k++;&&&&&&/*引入一个数来结算他们不相等的次数,如果全不相等,输出这个数*/
&&& if(k==9)
&&&&&printf(&%d\n&,a[i]);
&&for(i=0;i&9;i++)
&&&&&&k=0;
&&&&&&for(j=0;j&9;j++)
&&&&&&{ if(b[i]!=a[j])
&&&&&&&&&&&&k++;
&&& if(k==9)
&&&&&printf(&%d\n&,b[i]);
来 自:苏州
等 级:黑侠
帖 子:193
专家分:524
&&得分:10&
a,b两集合,S=(a-b)U(b-a).
先将a数组元素存入S。
将b中元素逐个与S中比较,
&&&&&&&&若S中不存在存在该元素,插入S数组中;存在,则删除S中相同元素。
最后输出S中的元素。
[ 本帖最后由 回首依依 于
14:37 编辑 ]
版权所有,并保留所有权利。
Powered by , Processed in 0.024979 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights ReservedC语言基础选择填空题集(二)
C语言(分支和循环结构)二
以下程序的输出结果是(& )
{ int a=-1,b=1,k;
if((++a&0)&&!(b--&=0))
printf("%d %d\n",a,b);
printf("%d %d\n",b,a);
A) -1 1 &B) 0 1
与 y=(x&0?1:x&0?-1:0);的功能相同的if语句是(& )
A) if (x&0)
y=1;&&&&&&&
if(x&0)y=-1;&&&&&&&
if(x&0)y=1;
y=0;&&&&&&&&&&&&&&&
else if(x&0)y=-1;
&&&&&&&&&&&&&&&&&&&&&&&&&&
y=-1&&&&&&&&&&&&&&&&
if(x)&&&&&&&&&&&&&&&&&&
if(x&0)y=1;&&&&&&&&&&&&
if(x&0)y=1;
if(x==0)y=0;&&&&&&
else y=-1;
else y=-1;
若执行以下程序时从键盘上输入9,则输出结果是(& )
& scanf("%d",&n);
& if(n++&10) printf("%d\n",n);
& else printf("%d\n",n--);
10&&&&&&&&
9&&&&&&&&&&&
若i为int型,且有程序如下,则输出结果是(& )
if(i%3==0);
&printf("####");
&printf("****");
A) ####& B) ****& C)
####****& D)& 无输出结果
请读下面程序:
{int x=1, y=2, z=3;
&printf("%d\t", x
&printf("%d\t", x
程序输出结果为(& )
在C语言的if语句中,用作判断的表达式为(& )
A) 关系表达式&&& B)
逻辑表达式
C) 算术表达式&&& D)
任意表达式
若变量都已正确说明,则以下程序段输出为(& )
int a=1,b=2,c,d;
if (a=b) c=d=a;
else c=b;d=b;
printf("%d,%d",c,d);
A)c=1,d=1&&&
C)c=2,d=1&&&
以下程序的输出结果是(& )
{int a=100,x=10,y=20,a1=5,a2=0
if(!a1) a=1;
if(a2) a=10;
& printf("%d\n",a)
若w、x、y、z、m均为int型变量,则执行下面语句后的m值是(& )
w=1;x=2;y=3; z=4;
C)3&&& D)4
若有定义: int a, 则合法的switch语句是(&
switch(w)&&&&&&&&&&&&&&&&&&&&&&&
B) switch(a);
{ case 1.0:
printf("*\n");&&&&&&&&&&&
{ case 1 printf("*\n");
& case 2.0:
printf("**\n");&&&&&&&&&&&&
case 2 printf("**\n");
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
switch(b)&&&&&&&&&&&&&&&&&&&&&&&
D) switch(a+b);
printf("*\n");&&&&&&&&&&&&&
{ case 1: printf("*\n");
& default:
printf("\n");&&&&&&&&&&&&&&&
case 2: printf("**\n");
& case 1+2:
printf("**\n");&&&&&&&&&&&&
default: printf("\n");
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
若输入B,以下程序的运行结果为& (& )
& scanf("%c", &grade);
& switch(grade)
& {& case 'A':
printf("&=85");
case 'C': printf("&=60");
case 'D': printf("&60");
default: printf("error.");}
A) &=85&&& B)
&=60&&& C)
&=60&&& D)
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&
选择出i的正确结果(& )
& case 9: i++;
& case 10: i+=1;
& case 11:i++;
& default: i+=1;
A) 10&&& B)
12&&& D) 13
C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的(&
不能丢,它表示d0_while循环的结束。
C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的(&
不能丢,它表示d0_while循环的结束。
以下程序的输出结果是(& )。
& int num=0;
& while(num&=2)
&& printf("%d\n",num);
2&&&&&&&&&
2&&&&&&&&&&
3&&&&&&&&&
以下程序的输出为(&&&
while (y--);
printf ("y=%d\n", y);}
B. 无限循环,无结果输出&&
设有程序段
int x=0,s=0;
while(!x!=0)& s+=++x;
printf("%d",s);
运行程序段后输出0&&&B)
运行程序段后输出1
C) 程序段中的控制表达式是非法的&&D)
程序段执行无限次
下面程序段的运行结果是(& )。
a=1;b=2;c=2;
{t=a; b=a; a=t; c--; }
printf("%d ,%d,%d",a,b,c);
A) 1,2,0&B) 2,1,0&C)
1,2,1&D) 2,1,1
以下能正确计算1&2&3&4...&10的程序段是(& )。
A) do {i=1; s=1; s=s*i; i++; }&
while(i&=10)
B) do {i=1; s=0; s=s*i; i++; }&
while(i&=10)
C)& i=1; s=1;
&&& do {s=s*i;
i++; }& while(i&=10)
D)& i=1; s=0;
&&& do {s=s*i;
i++; }& while(i&=10)
下面程序的运行结果是(& )。
{ int a=1,b=10;
& do {b-=a; a++;} while(b--&0);
& printf("a=%d,b+%d\n";a,b);
A) a=3,b=11&B) a=2,b=8&C)
a=1,b=-1&D) a=4,b=9
若i为整型变量,则以下循环执行的次数是(& )。
for(i=2;i==0;) printf("%d",i--);
A) 无限次&B) 0次&&C)
1次&&D) 2次
下面程序段的运行结果是(& )。
for(y=1;y&10;) y=((x=3*y, x+1), x-1);
printf("x=%d,y=%d",x,y);
A) x=27,y=27 &B) x=12,y=13&C) )
x=15,y=14& D) x=y=27
以下的for循环(&&&
&for(x=0,y=0;(y!=123)&&(x&4);x++);
执行3次& &B. 执行4次
循环次数不定&D. 是无限循环
下列程序段不是死循环的是(& )。
A) int i=100;
&& while(1)
{i=i0+1;& if (i&100)}
B) for( ; ; );
C) int k=0;
&& do { ++k;}&
while(k&=0);
D) int s=36;
&& while(s) ;--s;
下面程序段(& )。
for(t=1;t&=100;t++)
& {scanf("%d",&x);
&& if (x&0)
&& printf("=",t);
A) 当x&0时整个循环结束
B) x&=0时什么也不输出
C) printf函数永远也不执行
D) 最多允许输出100个非负整数
以下为死循环的程序段是(& )。
A) for(i=1; ; )
{if (++i%2==0)
if (++i%3==0)
B) i=32767;
do { if& (i&0)} while(++i);
C) for(i=1; ; )& if (++i&10)
D) i=1; while(i--);
若有如下程序段
while(!m==0)
{m+=m; printf("test..."); }
以下说法中正确的是(& )。
A) 循环体语句执行一次。&&B) 循环执行无限次
C) 循环体语句一次也不执行&D) 循环执行两次
下面程序的运行结果是(& ).
{ int i,b,k=0;
& for(i=1;i&=5;i++)
while(b--&=0)& k++;
& printf("%d,%d",k,b);
A) 3,-1&&B)
3,0&&D) 8,-2
语句if(a) x=1;与 if(a==0)x=1;等价
switch语句中的default分支一定放在最后
while语句do-while语句无论什么情况下,二者的执行结果都一样。
C语言的while、do-while和for几个循环语句,可以进行相互嵌套。
do-while语句构成的循环只能用break语句退出。
for( ; ; ) {循环体} 永远是一个死循环。
要使for(表达式1;表达式2;表达式3){循环体}不形成死循环,表达式2一定不能为空。
while循环和do-while循环的while()后一定要有一个分号。
C语言程序的三种基本结构是嵌套结构、递归结构、顺序结构。
C语言中while与do-while语句的主要区别是do-while的循环体至少无条件执行一次。&&&&&
语句& x=3; do {printf("-",x--);}&
while(!x); 的执行结果是3。
以下循环for (i=0; i&10;printf("*"));
printf("\n");
是死循环。
以下程序的运行结果是【& 】
{int a,b;
int i=5,j=7,k=0;
printf("a=%d,b=%d\n",a,b);
以下程序的运行结果是【& 】&
{if(2*1==2&2*2==4)
printf("##");
printf("**");
以下程序的运行结果是【& 】
{int a,b,c,d;
if(a)d=d-10;
else if(!b)
& printf("%d",d);
若运行时输入:3 5 /&回车&,则以下程序的运行结果是【& 】
{float& x,y;
& char o;
& scanf("%f%f%c",&x,&y,&o);
& switch(o)
&{case '+':r=x+y;
& case '-':r=x-y;
& case '*':r=x*y;
& case '/':r=x/y;
&printf("%f",r);
当运行下面程序时,从键盘键入right?&回车&,则下面程序的运行结果是【 】。
& while((c=getchar())!='?') putchar(++c);
下面程序段的运行结果是【 】。
do { printf("*"); x--; } while(!x==0)
当运行以下程序时,从键盘键入1 2 3 4 5 -1 &回车&,则下面程序的运行结果是【 】。
{ int k=0,n;
& do { scanf("%d",&n); k+=n; }
while(n!=-1);
& printf("k=%d&
n=%d\n",k,n);
下面程序段的运行结果是【 】。
for( a=1,i=-1;-1&=i&1;i++)
printf("-",a);&&&&
printf("-",i);
以下程序输出结果为【 】。
&& int x=-5;
&& { printf("=",x+=2);}
&& while (!(x++));
设x和y均为int型变量,则执行下的循环后,y值为【 】。
  for(y=1,x=1;y&=50;y++)
  { if(x&=10)
  if (x%2==1)
  { x+=5;}
C语言(分支和循环结构)三
若 w = 1, x = 2, y=3, z=4, 则条件表达式 w&x? w : y
有如下程序
{ float x=2.0,y;
& if(x&0.0) y=0.0;
& else if(x&5.0) y=1.0/x;
& else y=1.0;
& printf("%f\n",y);
该程序的输出结果是(& )
0.000000&&&&
0.250000&&&&
0.500000&&&&
D) 1.000000
若i为int型,且有程序如下,则输出结果是(& )
if(i%2==0) printf("####");
else printf("****");
A) ####& B) ****& C)
####****& D) 有语法错误, 无输出结果
有程序如下,若由键盘输入70,则输出结果是(& )
&scanf("%d\n", &n);
&if(n&=90) printf("A\n");
&else if(n&=80)&
printf("B\n");
&else if(n&=60)&
printf("C\n");
&else printf("D\n");
A) A&&& B)
选择运行结果为4的表达式(& )
A) int i=0, j=0;
(i=3,(j++)+i);&
B) int i=1, j=0;
&& j=i=((i=3)*2);
C) int i=0, j=1;
&& i=(j==1)?(i=1):(i=3);
D) int& i=1,j=1;
&& i+=j=2;
以下程序段输出为(& )
a=1,b=2,c=3;
if(a&b)a=b,
&&& printf("a=%d
b=%d c=%d\n",a,b,c);
A)a=1 b=2 c=1&&&
B)a=1 b=2 c=3
C)a=1 b=3 c=1&&&
D)a=2 b=3 c=2
请问读以下程序:
{int a=5,b=0,c=0;
& if(a=b+c)printf("&&&");
printf("###");
以上程序(&& )
A)有语法错不能通过编译& B)可以通过编译但不能连接
C)输出&&&&&&&&&&&&&&&&&
以下程序的输出结果是(& )
{ int x=2,y=-1,z=2;
if(y&0)& z=0;
& printf("%d\n",z);
以下程序的运行结果是(& )
{int& x,y,z;
& x=0;y=1;z=3;
& x=++y&=x||x+y!=z;
& printf("%d,%d",x,y);
有如下程序
{ int x=1,a=0,b=0;
& switch(x)
& {& case 0: b++;
case 1: a++;
case 2: a++;b++;
& printf("a=%d,b=%d\n",a,b);
该程序的输出结果是(& )
A) a=2,b=1 &B) a=1,b=1 &C)
a=1,b=0 &D) a=2,b=2
&写出下面程序输出结果(& )
&{int x=1, y=0, a=0, b=0;
&& switch(x)
&& {case 1:
{case 0: a++;
case 1: b++;}
&&& case 2: a++;
&& printf("a=%d, b=%d\n", a, b)
A) a=2, b=1&&&
B) a=1, b=1&&&
C) a=1, b=0&&&
D) a=2, b=2
在下列选项中,没有构成死循环的程序段是(&&&
A. int i=100
  while (1)
  {i=i0+1;
  if(i&100)
B. for(;;);
C. int k=1000;
  do{--k} while (k)
D. int s=36
  While(s&=0);++s;
语句while (!e);中的条件!e等价于(& )。
A) e==0;&&B)
e!=0&&D) ~e
在C语言中(& )。
A) 不能使用do_while语句构成的循环
B) do_while语句构成的循环必须用break语句才能退出
C) do_while语句构成的循环,当while语句中的表达式为非0时结束循环
D) do_while语句构成的循环,当while语句中的表达式为0时结束循环
有如下程序
while(putchar(getchar())!='?');
当输入"china?"时,程序的执行结果是(& )。
C) dijob?&D) china?
定义如下变量:
则下列循环的输出结果是(& )。
While(n&22)
&printf("%d\n",n);
21&&&&&&&&&&&&&
23&&&&&&&&&&&&&
22&&&&&&&&&&&&&
20&&&&&&&&&&&&&
22&&&&&&&&&&&&&
21&&&&&&&&&&&&&
下列程序段的运行结果是(&&&
&& while(x&10)
&& printf("%d,%d\n",x,y);
10,10&&&&&&
下面程序段的运行结果是(& )。
while(n++&=2);
printf("%d",n);
4&&D) 有语法错
以下描述中正确的是(& )。
A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C) 在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作
D) do-while循环中,根据情况可以省略while
&以下程序段的输出结果是(&&&
&& int x,i;
&& for (i=1;i&=100;i++)
&&& { x=i;
if (++x%2==0)
if (++x%3==0)
if (++x%7=0)
&&&&&&&&&&&
printf("%d ",x);
81&& B. 42 84
以下for循环的执行次数是(& )。
for(x=0,y=0;(y=123)&&(x&4);x++);
A) 是无限循环&B)
循环次数不定&&& C)
执行4次&&&&
D) 执行3次
下面程序段的运行结果是(& )。
for(x=3;x&6;x++)
printf((x%2)?("**%d"):("##%d\n"),x);
A) **3&&B)
##4&&&&&&&&
**4&&&&&&&&
**4##5&&&&&&
**5&&&&&&&&
下面有关for循环的正确描述是(&&&
& A. for循环只能用于循环次数已经确定的情况。
& B. for循环是先执行循环体语句,后判断表达式。
& C. 在for循环中,不能用break语句跳出循环体。
& D. for循环的循环体语句中,可以包含多条语句。
执行语句for(i=1;i++&4; );后变量i的值是(& )。
下面程序段(& )。
do { y=x--;
if (!y)& {printf("*");}
printf("#");
} while (1&=x&=2);
A) 将输出##&& B)
将输出##*& C) 是死循环&D)
含有不合法的控制表达式
以下描述正确的是(& )。
A) goto语句只能用于退出多层循环
B) switch语句中不能出现continue语句
C) 只能用continue语句来终止本次循环
D) 在循环中break语句不能独立出现
与下面呈现等价的是(& )。
for(n=100;n&=200;n++)
{ if (n%3==0)
printf("M",n);
for(n=100;(n%3)&&n&200;n++)&&
printf("M",n);
for(n=100;(n%3)||n&200;n++)&&
printf("M",n);
C) for(n=100;n&=200;n++)&& if
(n%3!=0) printf("M",n);
D) for(n=100;(n%3)&&n&200;n++)&
{if (n%3) printf("M",n);
下列程序段的运行结果是(&& )
a=2;b=1;c=1;
t=a;a=b;b=t;c--}
printf("%d,%d,%d\n",a,b,c);
A)1,2,0&&&&
B)2,1,0&&&&
C)1,2,1&&& D.
case后如果有多语句不需要用花括号括住。
case语句后一定要加break语句
continue语句的功能就是结束本层循环。
C语言的while、do-while和for几个循环语句中,for循环语句最灵活、功能最强。
用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。
for(表达式1;表达式2;表达式3)中,表达式1和表达式3可以同时都为逗号表达式。
for后的一对圆括号中,可以出现各种形式的与循环控制无关的表达式。
while循环和do-while循环的while()后一定不能加上一个分号。
若i为整型变量,则以下循环 i=0; while(i=0)i++;一次也不执行。
执行语句 for(i=1;++i&10; )后,i的值是10.
执行语句:for(i=1;i++&4;++i);后;变量i的值是3.
以下程序段的输出结果是987。
& int n=10;& while
(n&7)& { n--;printf("%d ",n);}
以下程序的运行结果是【& 】
int i=5,j=7,k=0;
printf("a=%d b=%d\n",a,b);
阅读下列程序
{int t,h,m;
scanf("%d",&t);
h=(t/100);
if(h==0)h=12;
printf("%d:",h);
if(m&10)printf("0");
printf("%d",m);
if(t&1200& ||t==2400)
printf("AM");
& else printf("PM");
若运行时输入:1605&回车&时,程序的运行结果是【& 】
以下程序的运行结果是【& 】
&{int a=2,b=3,c;
if(a&b)c=1;
if(a==b)c=0;
printf("%d\n",c);
以下程序段的运行结果是【& 】
int x=1,y=0;
&switch(x)
&& switch (y)
& { case 0:printf("*1*");
1:printf("*2*");}
2:printf("*3*");
下面程序的运行结果是【 】。
{ int a,s,n,
& a=2;s=0;n=1;count=1;
& while(count&=7) { n=n*a; s=s+n; ++
& printf("%d",s);
下面程序段的运行结果是【 】。
i=1; a=0; s=1;
do { a=a+s*i; s=-s; i++; } while(i&=10);
printf("a=%d",a);
下面程序段是找出整数的所有因子,请填空。
scanf("%d",&x);
for( ; 【 】; )
&& { if (x%i==0)
printf("=",i);}
以下程序输出结果为【 】。
& #include"stdio.h"
&& for(i=0;i&10;i++);
&& printf("%d",i);
以下程序段中,不是无限循环的是【 】。
i=100&&&&&&&&&&&&&&&&&&&&&
for(;;)&&&&&&&&
&&& { i=i0;
if (i&100)&
k=10;&&&&&&&&&&&&&&&&&&&
s=100&&&&&
do&&&&&&&&&&&&&&&&&&&&&&&&&&&
k++;}&&&&&&&&
while (k&0);
有以下程序
  main()
  { int i,
  for(j=10;j&11;j++)
  { for(i=9;i==j-1;i++)printf("%d",j);
输出结果是【 】。
C语言(数组)一
设有程序:
int& i,a[11];
printf("给数组赋值:\n");
for (i=0;i&=10;i++)
scanf("%d",(&&&&&
&& ... ...
printf("输出数组:\n");
for(i=0;i&=10;i++)
printf("%d,",(&&&&&
则在程序中的两个园括号中分别应填入:
A) &a[i]和&a[i] &
B) a[i]和&a[i]&
C) &a[i]和a[i]&
a[i]和a[i]&&&&&&&&&&&&&&&&&&&
设已定义:int a[15];
则数组a占用的内存单元数是(&&&&
A) 15&B) 16&C)
32&&&&&&&&&&&&&&&&&&&&&&
阅读程序:
{& int a[2]={0},i,j,k=2;
&& for(i=0;i
&for(j=0;j
&& printf("%d\n",a[k]);
以上程序的输出结果是(&&&&
A) 1&B) 3&C)
2&D) 不确定的值
阅读程序:
f(int b[],int n)
{ int i,r=1;
& for(i=0;i&=n;i++) r=r*b[i];
{ int x,a[]={2,3,4,5,6,7,8,9};
& x=f(a,3);
printf("%d\n",x);
以上程序的输出结果是(&&&
120&&&&&&&&&&&&&&&&&&&&&&
以下定义语句中,错误的是(&&&&
A) int a[ ] = {6,7,8};&&
B) int n=5, a[n];&
C) char a[ ]= "string";&
D) char a[5 ]={'0','1','2','3','4'};
以下描述中正确的是(&&&&
A) 数组名后面的常量表达式用一对圆括弧括起来
B) 数组下标从1开始&  
C) 数组下标的数据类型可以是整型或实型
D) 数组名的规定与变量名相同
若定义数组并初始化char a[10]={'0','1
','2','3','4','5','6','7','8','9'};指出以下错误语句(&&&&
scanf("%c",a[0]);
scanf("%s",&a);
printf("%c",a[3]);
printf("%s",a);
若定义数组int a[10]
,其最后一个数组元素为(&&&
A)&&& a[0]
B)&&& a[1]
C)&&& a[9]
若定义数组并初始化int a[10]={
1,2,3,4},以下语句哪一个不成立(&&&
A)&&& a[8]
B)&&& a[1]
C)&&& a[3]
D)&&& a[9]
指出以下错误语句(&&&
n=10,a[n];
a[10]={1,2,3};
a[10]={1,2,3,4,5,6,7,8,9,10};
请读程序:
{int n[2],i,j,k;
&for(i=0;i&2;i++) n[i]=0;
&for(i=0;i
&printf("%d\n",n[k]);
上面程序的输出结果是(&&&
A)不确定的值&&&&
若有以下的定义和语句:
int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='e',
则数值为2的表达式是(&&&
A)str['g'-c]&&
B)str[2]&&&
C)str['d'-'c']&&&
D)str['d'-c]
设有数组定义:int
a[5];则下列给数组元素赋值错误的是(&&&
A) a[3]=93;
B) scanf("%c",a[3]);
C) a[3]=getchar();
D) a[3]='a'+3;
以下数组定义中错误的是(&&&
A) #define N 30
&& int a[N+30];
B) #define N 30
&& int a[N];
C) int a[30];
D) int a[N];
在定义一个一维数组时,不能用来表示数组长度的是(&&&
B)符号常量&&&
C)常量表达式& D) 已被赋值的变量
若float型变量占用4个字节,有定义float
a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是(&&&
设已定义:int x[2][4]={1,2,3,4,5,6,7,8};
则元素x[1][1]的正确初值是(&&&
A) 6&B) 5&C)
1&&&&&&&&&&&&&&&&&&&&&&&
设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}};
则a[1][2]的初值为(&&&
A) 2&B) 4&C)
8&&&&&&&&&&&&&&&&&&&&&&&
设有:int a[4][5]; 则数组a占用的内存字节数是(&&
A) 12&B) 24&C)
20&&&&&&&&&&&&&&&&&&&&&&
以下数组定义中,不正确的是(&&&&
b[3][4];&&&&&&&&&
B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};&  
C) int b[200][100]={0};&  
D) int c[ ][3]={{1,2,3},{4,5,6}};
定义数组:int x[2][3]; 则数组x
的维数是(&&&&
A) 1& B) 2& C)
若定义数组并初始化int b[2][3]= {
1,2,3,4,5,6},以下语句哪一个成立(&&&&
表达式b[1][2]的值为1
表达式b[1][2]的值为4
表达式b[1][2]的值为6
表达式b[1][2]的值为2
若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i&2;i++)
for(j=0;j&3;j++)
printf("%d",a[i][j]);语句的结果是哪一个(&&&&
1,2,3,4,5,6
B)&&& 1 2 3 4 5
若定义数组并初始化int a[2][3]= {{1,2,
3},{4,5,6}};以下语句哪一个不成立(&&&
a数组中有6个元素
a[2][3]是a数组的最后一个元素的引用
a数组中每个元素都为整数
a数组是整型数组
定义如下变量和数组:
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是(&&&
for(i=0;i&3;i++)& printf("%d",x[i][2-i]);
A) 1 5 9& &B) 1 4
7&& C) 3 5 7 &
如有以下定义:double
s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是(&&&
A) s[1][3]&&& B)
s[0][3]&&& C)
s[0][2]&&& D)
以下程序的输出结果是(&&&
{int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i&3;i++)
for(j=0;j&=i;j++)
s+=a[i][j];
printf("%d",s);
若已有char
b[10][50];则该二维字符数组在内存所占字节数为(&&&
a[2][3];&&&&&
B)int b[][3]={0,1,2,3};
C)int c[5][5]={0};& D)int d[3][
]={{1,2},{1,2,3},{1,2,3,4}};
设有:char a[10];
下列语句那个是正确的(&&&&
A) scanf("%s",a[0]);&
B) scanf("%s",&a);&
C) printf("%s",a[0])&
printf("%s",a)&&&&&&&&&&&&&&&&&&&&&&
阅读程序:
{& char a[10];
&& for(i=1;i&=5;i++)
&scanf("%c",&a[i]);
&& printf("%c",a[0]);
设从键盘输入字符串:abcde,则程序的输出结果是(&&&&
a&B)空格&C)不确定&D)0&&&&&&&&&&&&&&&&&&&&&&
设有:char a[4][5];
则数组a占用的内存字节数是(&&&&
A) 12&B) 24&C)
20&&&&&&&&&&&&&&&&&&&&&&
合法的数组定义是(&&&&
A) int a[ ] = "string";
B) int a[5]={0,1,2,3,4,5};
C) char a= "string";
D) char a[ ]={'0','1','2','3'};
设有数组定义:char string[
]="China";则数组string所占的空间为(&&&&&
A) 5个字节&  
B) 6个字节&  
C) 7个字节&  
D) 10个字节
定义字符数组c:char c[ ]={"c
language"};数组c在内存中所占字节数是(&&&&
A) 9&  B) 10  C) 11&  D) 12
指出以下错误语句(&&&&
A)&&& char
a[10]={'0','1','2','3','4','5','6','7','8','9'};
B)&&& char
a[10]={'0','1 ','2','3'};
C)&&& char a[2]=
{"1","2"};
D)&&& char a[2]=
{'a’,'b’};
若定义数组并初始化char
a[10]={"hello"},该数组的元素个数是(&&&&
若定义数组并初始化char a[10]={"HELLO"},该数组的元素中
a[2]是(&&&&
若定义数组并初始化int b[10]={
1,2,3,4},以下哪几个语句成立(&&&
A)b[8]的值为0
B)b[1]的值为1
C)b[3]的值为整数
D)b[10]不是b数组中的元素
若定义数组int a[10];指出下列错误语句:
A)& a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];
B)& a数组是整型数组,其元素自动初始化为0;
C)& a数组最后一个元素的引用方法是a[10];
D)& a数组第一个元素的引用方法是a[1];
数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。&&&&&&&&&&&&&&&&
数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型、字符型甚至结构类型。&&&&&&&&&&&&&&&&&&&&
设需定义一个有15个元素的数组a,并对其前5个元素赋初值,可用如下语句实现:int
a[]={1,2,3,4,5};&&&&&&&&&&&&&&&&&&&&&
数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变量来定义数组长度。
C语言数组的下标从0开始,下标必须是整数型的常量或变量。
数组是数目固定、类型相同的若干变量的有序集合。数组中的每一个数(变量)称为数组元素,数组中的所有元素都属于同一种数据类型。
数组元素下标的下界是固定的,总是为0。
一维数组在引用时下标的范围是:0 &= 下标 & 数组的长度 。
若有数组定义为:int a[100];则该数组的下界为0,上界为100。数组元素下标范围是:& 下界
&= 下标 & 上界。
设已定义:double a[5][5]; 则数组a在内存中的存放顺序是:a[0][0],a[0][1],a[0][2], ...
,a[4][3],a[4][4]
。&&&&&&&&&&&&&&&&&&
C语言(数组)二
设已定义:float a[15];
则数组a可引用的元素有(&&&&
A) a[1]~a[15]&
B) a[0]~a[15]&
C) a[1]~a[14]&
a[0]~a[14]&&&&&&&&&&&&&&&&&&&&&&&&
以下程序段给数组所有元素输入数据:
{& int a[10],i=0;
&& while(i&10)
scanf("%d",(&&&&&
&& ... ...
应在园括号中填入的是:
A) a+(i++)&
B) &a[i+1]&
D) &a[++i]
若有以下定义:double w[100];
则数组w的元素下标范围是(&&&&
A) [0,100]&
B) [0,99]&
C) [1,100]&
[1,99]&&&&&&&&&&&&&&&&&&&&&&
若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10};& char
则数值为4的表达式是(&&&&
A) a['f'-c]&
C) a['d'-'c']&
a['d'-c]&&&&&&&&&&&&&&&&&&&&&&
已知int类型变量在内存中占用2个字节,定义数组int
b[8]={2,3,4};则数组b在内存中所占字节数为(&&&&
A) 3&  B) 6&  C)
8&  D) 16
用数组名作为函数调用时的实参,实际上传送给形参的是(&&&&
数组首地址&&&&&&&&&&&&&
B) 数组的第一个元素值&
数组中全部元素的值&&&&&
D) 数组元素的个数&&
若定义数组int a[10]
,其数组元素的下标下限为(&&&
若定义数组int
a[10],以下语句哪一个不成立(&&&
数组在内存中占有一连续的存储区
a代表a数组在内存中占有的存储区的首地址
*(a+1)与a[1]代表的数组元素相同
a是一个变量
若定义数组并初始化int a[10]={
1,2,3,4},以下语句哪一个成立(&&&
若引用a[10],编译时报错
若引用a[10],连接时报错
若引用a[10],运行时出错
若引用a[10],系统不报错
若定义数组并初始化int a[10]={
1,2,3,4},以下语句哪一个不成立(&&&
a[10]是a数组的最后一个元素的引用
a数组中有10个元素
a数组中每个元素都为整数
a数组是整型数组
执行下面的程序段后,变量k中的值为(&&&
int k=3,s[2];
s[0]=k;k=s[1]*10;
A)不定值&&&&
如已有定义:int
a[4];若要把10,20,30,40分别赋值给数组a的4个元素,下面正确的赋值方式是(&&&
A)scanf("%d%d%d%d",a[0],a[1],a[2],a[3]};&
B)scanf("%s",a);
C)a={10,20,30,40};
D)a[0]=10;a[1]=a[0]+10;a[2]=a[1]+10;a[3]=a[2]+10;
下列数组定义正确的是(&&&
A) int a[];
B) char a[100]={68,69,70};
C) int n=100,a[n];
D) char n=4,a[n]={"abc"};
一维数组初始化时,若对部分数组元素赋初值,则下面正确的说法是(&&&
A)可以只对数组的前几个元素赋初值
B)可以只对数组的中间几个元素赋初值
C)可以只对数组的后几个元素赋初值
D)以上说法全部正确
决定数组所占内存单元多少的是(&&&
A)数组的长度&& B)数组的类型
C)数组在初始化时被赋值的元素的个数& D) 数组元素的个数及其类型
以下程序的输出结果是(&&&
{int i , a[10]};
for (i=9;i&=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
C)852&& D)369
设有程序段:
#define N 3
#define M N+2
float a[M][N];
则数组a的元素个数和最后一个元素分别为(&&&&
A) 15,a[5][3]&B) 15,a[3][5]&C)
8,a[4][2]&D)
15,a[4][2]&&&&&&&&&&&&&&&&&&&&&
设有:int x[2][4]={1,2,3,4,5,6,7,8};printf("%d",x[2][4]);
则输出结果是(&&&&
A) 8&B) 1&C)
语法检查出错&&&&&&&&&&&&&&&&&&&&&&
以下程序的输出结果是(&&&&
{& int i,a[3][3]={ 1,2,3,4,5,6,7,8,9 };
for(i=0;i&3;i++)& printf("%d,",a[i][2-i]
A) 1,5,9&  B) 1,4,7&  C)
3,5,7&  D) 3,6,9
以下数组定义中正确的是(&&&&
A) float f[3,4];& B) int a[ ][4];
D) double d[3+2][4];
指出以下错误语句(&&&&
a[2][3]= {{1,2,3},{4,5,6}};
b[2][3]= {1,2,3,4,5,6};
a[][]={{1,2,3},{4,5,6}};
a[][3]= {{1,2,3},{4,5,6}};
若定义数组并初始化int
b[][3]={{1,2,3},{4,5,6}};以下语句哪一个成立(&&&&
b[1][2]的值为1
b[1][2]的值为4
b[1][2]的值为6
b[1][2]的值为2
若定义数组并初始化int
b[][3]={{1,2,3},{4,5,6}};以下语句哪一个成立(&&&&
b[1][2]的值为1
b[1][2]的值为4
b[1][2]的值为6
b[1][2]的值为2
若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}},b[2][3]={
1,2,3,4,5,6};
以下语句哪一个不成立(&&&
a和b数组中各有6个元素
b数组的初始化是错误的
a数组与b数组中每个对应元素相等
a、b数组都是整型数组
合法的数组初始化是(&&&
A)& int x[][]={{1,2,3},{4,5,6}};
B)& int x[][3]={1,2,3,4,5};
C)& int x[3][3]={1,2,3;4,5,6;7,8,9};
D)& int x[3][3]={1,2,3};
在对二维数组初始化时,错误的说法是(&&&
A)可对二维数组的全部元素赋初值
B)可对二维数组的部分元素赋初值
C)给二维数组的全部元素赋初值时,可以不指定第一维的长度但第二维的长度不能省略
D)给二维数组的全部元素赋初值时,可以不指定第二维的长度但第一维的长度不能省略
以下程序的输出结果是(&&&
{int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
A)0650&&&&
D)输出值不确定
在内存中,二维数组存放的顺序是(&&&
A)按行顺序&& B)按列顺序
C)按元素的大小& D)按元素被赋值的先后顺序
设定义了:char a[10]={'1','2','3','4','5'};
则a[5]的正确初值是(&&&
A) '5'&B) 5&C)
'\0'&& D) '
'&&&&&&&&&&&&&&&&&&&&&&
设有:char a[10];
下列语句那个是正确的(&&&&
A) scanf("%c",a[0]);&
B) scanf("%c",a);&
C) printf("%c",a)&
D) printf("%c",a[0])
设有定义:char a[][5]={{'*'},{'*',' ','*'},{'*',' ',' ',' ','*'},{'*','
','*'},{'*'}};
则a[0][0]和a[4][4]的初值分别为(&&&&
B) 空格,空格 &
C) 空白符,*&
*,空白符&&&&&&&&&&&&&&&&&&&&&&
设有:char a[]={"I am a student."};
则a在内存中占用的字节数是(&&&&
A) 15&B) 12&C)
32&&&&&&&&&&&&&&&&&&&&&&
给出以下定义:char u[ ]="abcdef";& char v[
]={'a','b','c','d','e','f'};&
则下列正确的描述为(&&&&
A) 数组u和数组v等价       
B) 数组u和数组v的长度相等
数组u的长度大于数组v的长度&&&
D) 数组u的长度小于数组v的长度
若有以下定义和语句,则输出结果是(&&&&
char string[ ]="Sunny";
printf("%.3s",string);
A) Su&  B) Sun&  C)
Sunn&  D) Sunny
C语言中实现字符串输入的库函数是(&&&&
gets(字符数组)&&&&&
B) puts(字符数组)&
(字符串)&&&&
D) strcmp(字符串1,字符串2)&&
若定义数组并初始化char
a[]={"hello"},该数组的元素个数是(&&&&
A)&&& 不知道
若定义数组并初始化char
a[10]={"hello"},该数组的元素中’\0’的个数是(&&&&
若定义数组并初始化char a[10]={"hello"},该数组的元素中
a[5]是(&&&&
C)&&& '\0'
若定义数组并初始化char a[10]={'0','1
','2','3','4','5','6','7','8','9'},指出以下错误语句(&&&
A)可以用scanf("%s",a[0]);语句对a[0]元素重新赋值。
B)可以用scanf("%s",&a);语句对a数组重新赋值。
C)可以用scanf("%c",a[3]);语句对a[3]元素重新赋值。
D)可以用scanf("%s",a);语句对a数组重新赋值。
数组初始化时,下面说法错误的是(&&&
A)当对一维数组的全部元素赋初值时,可以不指定长度
B)当对二维数组的全部元素赋初值时,可以省略维数
C)用字符串对一维字符数组赋值时,可以不指定长度
D)用字符串对二维字符数组赋值时,可以省略维数
可以用如下的语句定义数组a:int
n=10,a[n];&&&&&&&&&&&&&&&&&&&
设已定义:int a[15]={1,2,3,4,5};& 则语句
printf("%d",a[5]);
的输出结果是5。&&&&&&&&&&&&&&&&&&&&&&&
数组中的所有元素必须属于同一种数据类型。
数组名表示的是该数组元素在内存中的首地址。
C语言只能单个引用数组元素而不能一次引用整个数组。
定义数组:int a[10]; 则数组a的最后一个元素是a[9],数组 a共有9个元素。
C语言中数组元素用数组名后带圆括弧的下标表示。
C语言中数组所占存储单元的多少仅由数组的长度决定。
定义一维数组int a[10];则语句for(i=0;i&10;i++)
scanf("%d",a[i]);是正确的。
给二维数组的全部元素赋初值,可以用如下的语句实现:int
a[][]={{1,2,3},{4,5,6},{7,8,9}};&&&&&&&&&&&&&&&&&&&&&
C语言(函数,变量作用范围)一
C语言程序的基本单位是(&&&&&
程序&&&&&&&
语句&&&&&&&&
字符&&&&&&&&
下列函数定义不正确的是 (&& )。
max()&&&&&&&&&&&&&&&&&&&&&&
B)int max(x,y)&
x,y,z;&&&&&&&&&&&&&&&&&&&&&&
z=x&y?x:y;&&&&&&&&&&&&&&&&&&&&&
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
z=x&y?x:y;
max(x,y)&&&&&&&&&&&&&&&&&&&&&&
return(z);
x,y,z;&&&&&&&&&&&&&&&&&&&&&
}&&&&&&&&&&&&
z=x&y?x:y;&&&&&&&&&&&&&&&&&&&
D) int max()
(z);&&&&&&&&&&&&&&&&&&&&&&
以下叙述中正确的是(&&&&&
A)在C语言中总从第一个开始定义的函数开始执行
B)在C语言中所有调用别的函数必须在main函数中定义
C)C语言总是从main函数开始执行
D)在C语言中,main函数必须放在最前面
以下说法中正确的是(&&&&&
A)& C语言程序是由一个或多个函数组成,其中至少有一个主函数
B)一个C语言文件至少应有一个主函数
C)所有C语言函数都有返回值
D)C程序中,main函数必须放在其他函数之后
以下正确的函数定义是(&&&&&
A) double& fun(int x,int
z=x+y; return z;}
B)& fun(int x,y)
{int& return z;}
C)& double& fun(int x,int
z=x+y; return z;}
D)& double& fun( x,
z=x+y; return z;}
以下正确的函数声明形式是(&&&&&
A)& float&
fun(int& x,int y)
B)&& float&
fun(int& x, y)
C)&& float&
fun(int& x,int y);
D)&& float&
fun(int ,int )
C语言中,函数返回值的类型是由(&&&&&
A)调用函数时临时
B)return语句中的表达式类型
C)调用该函数的主调函数类型
D)定义函数时,所指定的函数类型
关于return语句,正确的说法是 (&& )。
A)可以在同一个函数中出现多次
B)必须在每个函数中出现
C)在主函数和其它函数中均可出现
D)只能在除主函数之外的函数中出现一次
C语言中形式参数的作用范围是(&&&&&
其所在的函数内&&&&
B) 整个程序文件
以下正确的函数定义形式是(&&&&&
A) double fun(int x,int y)
B) double fun(int x,int y);
C) double fun(int x, y)
D) double fun(int x, y);
以下函数f返回值是(&&&
f(int x){}
A)void类型&B) int类型&C)
float类型&D) 无法确定返回值类型
以下说法中正确的是(&&&&&
A)定义函数时,形参的类型说明可以放在函数体内
B)return后面的值不能为表达式
C)如果函数值的类型与返回值的类型不一致,以函数值类型为准
D)如果形参与实参的类型不一致,以实参为准
若用数组作为函数调用的实参,传递给形参的是(&& ).
A)数组的首地址
B)数组第一个元素的值
C)数组中全部元素的值
D)数组元素的个数
C语言中,调用一个函数时,当形参是变量名时,实参和形参之间的数据传递是(&&&&&
A)单纯值传递
B)单纯地址传递
C)值传递和地址传递都有可能
D)由实参传给形参,然后由形参传回给实参,既是双向传递
下列函数调用中,不正确的是 (&& )。
A)max(a,b);&&&&&&&&&&&&&&&&&&&
B)max(3,a+b);
C)max(3,5);&&&&&&&&&&&&&&&&&&&
D)int max(a,b);
若输入ab,程序运行结果为 (&& )。
{ char a[2];
& scanf("%s",a);
& printf("%c,%c",a[1],a[2]);
A)a,b&&&&&&&&&&&&&&&&&&&&&&&&&&&&
C)b,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D)程序出错
在下面对C语言函数的有关描述中,正确的是(&&&&&
A)在C语言中调用函数时,若函数参数为简单变量,则只能将实参的值传给形参,形参的值不能传给实参
B)函数必须有返回值,否则不能使用函数
C)C程序中有调用关系的所有函数必须放在同一源程序文件中
在C语言中以下正确的说法是(&&&&&
A) 当函数的参数为简单变量时,实参和与其对应的形参各占用独立的存储单元;
B) 当函数的参数为简单变量时,实参和与其对应的形参共占用一个存储单元;
C) 形参是虚拟的,不占用存储单元。
若用数组名作为函数调用的实参,传递给形参的是(&&&&&
A)数组的首地址
B)数组第一个元素的值
C)数组全部元素的值
D)数组元素的个数
&&& main()
float a=3.14;
printf("%.2f\n",a);}
执行结果为(&& ).
执行下列程序后, 变量a的值应为(&& ).
&& f1(float x)
&&& {return
a=f1(2.4);
下列程序的执行结果为(&& ).
f1(float x)
&&& main()
float b=4.3;
printf("%.1f",f1(b));
A) 8.6&&& B)
若有以下函数定义,则在主函数中正确的调用语句是
&int fun(int& array[3][5])
{ ………..}
{ int& a[3][5],
&& ……..}
A)b=fun(a[3][5]);
B)b=fun(int a[3][5]);
C) b=fun(a);
E) b=fun(&a);
函数f的定义为:
& f(int x)
&& {return x*x;}
以下程序是嵌套调用的有(&& ).
A)a=f(2)*f(2);
B)a=sqrt(f2(4)*f(4));
C)以上均不是
D)以上均是
对下列递归函数:
&int f(int n)
return (n==0)? 1: f(n-1)+2;
函数调用f(3)的返回值是(&& ).
6&&&&&&&&&&&
7&&&&&&&&&&&
D) 以上均不是
在一个源文件中定义的全局变量的作用域为(&&&&&
A)本文件的全部范围。&&&&&&&&&&&&&&&&&
B)本程序的全部范围。
C)本函数的全部范围。&&&&&&&&&&&&&&&&&
D)从定义该变量的位置开始至本文件结束。
C语言中全局变量的作用范围是(&&&&&
其所在的函数内&&&&
B) 整个程序文件
如果在一个函数中的复合语句中定义了一个变量,则该变量的作用范围为(&&&&&
A)在该函数中有效&
B)在该复合语句中有效
一个函数一般由函数说明部分和函数体组成。
执行下列语句后,程序的运行结果为(&& ).
&int a=10;
printf("%d",a);
以下说法中正确的是(&&&
A)主函数中定义的变量是全局变量,其作用范围仅限于函数内部
B)主函数中定义的变量是全局变量,其作用范围从定义之处到文件结束。
C)主函数中定义的变量是局部变量,其作用范围仅限于函数内部
D)主函数中定义的变量是局部变量,其作用范围从定义之处到文件结束。
调用C语言函数时,实参可以是:
下面程序段是否正确。
&{ void fun()
形参应与其对应的实参类型一致。&&&
C语言中,void类型的函数可以不用在主调函数中声明。
用数组名作函数形参和实参时,应在主调函数和被调函数中分别定义数组。
以数组名作为函数参数时,实参数组必须定义为具有确定长度的数组,而形参数组可以不定义长度。
Return语句后面的值不能为表达式。
对于不要求带返回值的函数,函数类型必须是void类型。
数组元素做函数的实际参数,传递的是整个数组。
形参不是局部变量。
在一个函数定义中只能包含一个return语句。
主函数和其它函数可以互相调用。
以下程序运行结果为1,3,5,7。
{ int a[4]={1,3,5,7};
& printf("%d,%d,%d,%d\n",a);
函数调用可以作为一个函数的实参。&&&
函数的嵌套调用就是在调用一个函数的过程中,又调用另一个函数。
数组名作为函数参数时,传递的是数组第一个元素的值。
C语言中允许函数的递归调用。
下面程序段能否正确执行。
&{int m=n;
&void func()
&{int s=3;
不同函数中定义的变量,其作用范围都限制在各自的函数内,在内存中占据的存储单元也各不相同。
在C语言中,如果不对函数作类型说明,则函数的隐含类型为【&&&&
C语言(函数,变量作用范围)二
1 C语言程序由函数组成,以下说法正确的是(&&
A)主函数可以在其它函数之前,函数内不可以嵌套定义函数
B)主函数可以在其它函数之前,函数内可以嵌套定义函数
C)主函数必须在其它函数之前,函数内不可以嵌套定义函数
D)主函数必须在其它函数之前,函数内可以嵌套定义函数
2 以下说法中不正确的是 ( A& )。
A) 主函数main中定义的变量在整个文件或程序中有效
B) 不同的函数中可以使用相同名字的变量
C) 形式参数是局部变量
在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效&&&
3 下面函数
f(double x)
{printf(“m\n”,x);}
的类型为(&
A) 实型&&B)void
类型&C)int 类型 &D)
A)、B)、C)均不正确
4 以下说法中正确的是(&
A)C语言程序总是从第一个定义的函数开始执行
B)在C语言程序中,要调用的函数必须在main函数中定义
C)C语言程序总是从main函数开始执行
D) C语言程序中,main函数必须放在程序的开始部分
5 以下正确的函数定义是(&
A) double& fun(int x,int
z=x+y; return z;}
B)& fun(int x,y)
{int& return z;}
C)& double& fun(int x,int
z=x+y; return z;}
D)& double& fun( x, y)
{int& x,y;
z=x+y; return z;}
6 定义为void类型的函数,其含义是(&&
A)调用函数后,被调用的函数没有返回值
B)调用函数后,被调用的函数不返回
C)调用函数后,被调用的函数的返回值为任意的类型
D)以上三种说法都是错误的
7 设有如下定义:
int x=10,y=3,
printf("%d\n",z=(x%y,x/y));
的输出结果是(&&
1&&&&&&&&&
B)0&&&&&&&&&
8 在C语言的函数中,( C& )。
A)必须有形参&&&&&&&&&&&&&&&&&&&&&&&&&
B)形参必须是变量名
C)可以有也可以没有形参&&&&&&&&&&&&&&&
D)数组名不能作形参
9 函数调用语句f((x,y),(a,b,c),(1,2,3,4));中,所含的实参个数是(
10 如果函数的首部省略了函数返回值的类型名,则函数被默认为( C& )。
A)void类型& B)空类型
C)int类型&& D)char类型
11 用数组名做函数的参数,实际上传递给形参的是( A& ).
A) 数组元素的首地址&& B)
数组的第一个元素的值&&&&&
每一个数组元素&&&&
D)整个数组的个数
12 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(&
C)long int
13 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式是(
int& a[3][4];
A)f(int& array[ ][6])
B)f(int& array[ 3][ ])
C)f(int& array[ ][4])
D)f(int& array[ 2][5])
14 下列说法中正确的是(&
A)调用函数时,实参变量与形参变量可以共用内存单元
B)调用函数时,实参的个数、类型和顺序与形参可以不一致
C)调用函数时,形参可以是表达式
D)调用函数时,将为形参分配内存单元
15 下列语句中,不正确的是 ( D& )。
A)c=2*max(a,b);&&&&&&&&&&&&&&&
B)m=max(a,max(b,c));
C)printf("%d",max(a,b));&&&&&&
D)int max(int x,int max(int y,int z))
16 以下函数调用语句:
fun(x+y,x-y);中实际参数的个数是(&
17 C语言可执行程序开始执行点为(&
A)程序中第一条可执行语句&B) 程序中第一个函数
C)程序中的main函数&&D)
包含文件中的第一个函数
18 若调用一个函数,且此函数中无return语句,则正确的说法是(&
A) 没有返回值;&&
B) 返回若干个系统默认值;
C) 能返回一个用户所希望的函数值;
D) 返回一个不确定的值
19 执行下列程序后, 变量 i 的值应为(&
&int ma(int x,int y)
&&&&&&&&&&
{return x*y;
&&&&&&&&&&
&& i = ma(i,i-1)-7;
A) 13&&& B)
19&&&&&&&&&&&
D) 以上都错
20 下列程序的结果为(& C ).
& change(int x,int y)
t=x;x=y;y=t;
int x=2,y=3;
change(x,y);
printf("x=%d,y=%d\n",x,y);
x=3,y=2&&&&
x=2,y=3&&&&&
x=2,y=2&&&&
D) x=3,y=3
21 执行下列程序后, 变量a的值应为( D& ).
& int f(int x)
&&& {return
&& {int a=1;
while(f(a)&10)
22 若有以下函数定义,则在主函数中正确的调用语句是( C ).
void&& fun(int&
array[][5])
{ ………..}
{ int& a[3][5],
&& ……..}
A)fun(a[3][5]);
B)b=fun(a);
C)& fun(a);
D)& fun(a)
23 C语言中的函数(&
A)可以嵌套定义。
B)不可以嵌套调用。
C)可以嵌套调用,但不能递归调用。
D)嵌套调用和递归调用均可。
24 C语言中(&&
A&& )函数的递归调用.
允许&&&&&&&
不允许&&&&&&&&
25 对于以下递归函数f, 调用f(4),其返回值为(& B&
&int f(int n)
&&&&&&&&&&&&
return f(n-1)+n;
&&&&&&&&&&&&
10&&&&&&&&&&&
11&&&&&&&&&&&
26 以下不正确的描述为(&
A)在函数之外定义的变量为外部变量,外部变量是全局变量。
B)在函数中既可以使用本函数中的局部变量,又可以使用全局变量。
C)若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。
27 以下正确的说法是:建立函数的目的之一是( B& ).
提高程序的执行效率;&&&B)
提高程序的可读性
减少程序的篇幅;&&&D)
减少程序文件所占内存
28 执行下列语句后,a的值为(& C& ).
&int a=12, b=7;
&m(int a,int b)
&&&&&&&&&&
A) 0&&& B)
1&&&&&&&&&
12&&&&&&&&&&
29 全局变量的有效范围为(D& ).
该程序的所有文件&&&&
从本源文件的开始到结束&&&&&
该程序的主函数&&&&
D) 从定义变量的位置开始到本源文件结束
30 以下说法中正确的是(& C ).
A)形参是全局变量,其作用范围仅限于函数内部
B)形参是全局变量,其作用范围从定义之处到文件结束。
C)形参是局部变量,其作用范围仅限于函数内部
D)形参是局部变量,其作用范围从定义之处到文件结束。
1 若使用一维数组名作为函数实参,则以下说法正确的是( AC )
A)必须在主调函数中说明此数组的大小
B)实参数组与形参数组类型可以不匹配
C)实参数组与形参数组的大小可以不一致
D)实参数组名与形参数组名必须一致
1 实参可以是常量、变量或表达式。 &对
2 定义函数时,形参的类型说明可放在函数体内。
3 在有参函数中,定义函数中指定的形参变量在整个程序一开始执行时便分配内存单元。
4 数组名作函数参数时,也采用“值传送”方式。
在C函数中,当以数组名作为参数时,对形参变量的操作不会影响到调用函数中的实参变量,即形参值不能传回给实参。&&
6 函数调用可以作为一个函数的形参。
7 数组名做函数的参数时,可以只在主调函数中定义数组,被调用函数只需要确定名称就可以了。
8 数组元素做函数的实参,是双向传递,即“地址传递”方式。
9 形参和实参的变量名称可以一样。& 对
10 除了利用实际参数和形式参数在各函数之间传递数据外,利用全局变量,也可以在各函数间传递数据。&
11 函数的实参与形参的类型应一致。& 对
12 在C中,形式参数只是局限于所在函数.& 对
13 在一个函数定义中只能包含一个return语句。
14 C语言不允许在调用一个函数的过程中出现直接或者间接地调用该函数本身。
15 C语言中允许函数的嵌套定义和嵌套调用。
16 在同一源文件中,外部变量与局部变量同名时,则在局部变量的作用范围内,外部变量不起作用。 对
17 不同函数中使用相同名字的变量时,代表的是相同的变量。
18 全局变量在在程序的全部执行过程中都占用存储单元。 对
1 f( int m )
for( i=0; i
&&&&&&&&&&
for( j=m-1; j&=0; j--)
&&&&&&&&&&&&&
printf("%c",i+j, j?'*':'#');
如果调用f(3)将输出【 2*1*0#3*2*1#4*3*2# 】
C语言(函数,变量作用范围)三
1 下列定义不正确的有 ( C& ) 。
A)#define PI
3.141592&&&&&&&&&&
B)#define S 345
max(x,y);&&&&&&&&&&&&&&&&
2 下列程序结构中,不正确的是 ( B )。
A)main()&&&&&&&&&&&&&&&&&&&&&&&&&
B) main()
a,b,c;&&&&&&&&&&&&&&&&&&&&&&
{float a,b,c;
scanf("%f,%f",&a,&b);&&&&&&&&&&&&&&
scanf("%f,%f",&a,&b);
c=add(a,b);&&&&&&&&&&&&&&&&&&&&&&&&
c=add(a,b);
......&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&& int add(float x,float
y)&&&&&&&&&&&
float add(float x,float y)
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&
C)float add(float x,float
D)float add(float x,float y)
main()&&&&&&&&&&&&&&&&&&&&&&&&&&&&
a,b,c;&&&&&&&&&&&&&&&&&&&&&
scanf("%f,%f",&a,&b);&&&&&&&&&&&
{float a,b,c;
c=add(a,b);&&&&&&&&&&&&&&&&&&&&&&
scanf("%f,%f",&a,&b);
......&&&&&&&&&&&&&&&&&&&&&&&&&&&
c=add(a,b);
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&& float add(float x,float
&& { ... }
3 一个C语言的程序总是从( A )开始执行的.
A)main函数&
B)文件中的第一个函数
C)文件中的第一个子函数调用
D)文件中的第一条语句
4 以下正确的函数定义是(&
A)double& fun(int x,int y)&
&&& {z=x+y;
return z;}
B) double& fun(int x,int
z=x+y; return z;}
C)&& fun(int x,y)
{int& return z;}
D)& double& fun(int x,int
z=x+y; return z;}
5 以下正确的函数声明形式是(&&
A) double& fun(int& x,int
B)&& double&
fun(int&int y)
C)&& double&
fun(int& ,int )
D)&& double&
fun(int& ,int );
6 以下说法中正确的是(&
A)实参与其对应的形参各占用独立的存储单元
B)实参与其对应的形参占用同一个存储单元
C)只有当实参与形参同名时才占用同一个存储单元
D)实参占用存储单元,但形参是虚拟的,不占用存储单元
7 设有如下函数定义:
& int f(char *s)
{ char *p=
& while(*p!='\0') p++;
& return(p-s) ;
如果在主程序中用下面的语句调用上述函数,则输出结果为(&&
printf("%d\n",f("goodbye!"));
的输出结果是
3&&&&&&&&&
6&&&&&&&&&
8 下面程序段中,主函数中变量a被初始化为 ( C& )。
& return 3.5;
& int a=f();
A)3.5&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B)无确定值
C)3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D)程序出错
9 下面叙述不正确的是(&
A)&在函数中,通常用return语句传回函数值;
B)&在函数中,可以有多条return语句;
C)&在C中,主函数main后的一对圆括号中也可以带有形参;
D)&在C中,调用函数必须在一条独立的语句中完成;
10-C语言函数返回值的类型是由( C& )决定的。
A) 调用该函数的主调函数类型&&B)
定义函数时所指定的函数类型
C) return语句中的表达式类型&&D) 以上都错
11-以下说法中正确的是(&&
A)实参可以是常量、变量或表达式
B)形参可以是常量、变量或表达式
C)实参可以为任意类型
D)形参应与其对应的实参类型一致
12-C语言中规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B& ).
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传给实参
D)由用户指定传递方式
13-以下程序的输出结果是 (&
&int power(int x,int y);
{float a=2.6,b=3.4;
&p=power((int)a,(int)b);
&printf("%d\n",p);
&int power(int x,int y)
{int i,p=1;
&for(i=y;i&0;i--)
9&&&&&&&&&
27&&&&&&&&
14-以下不正确的描述为(&&
A)调用函数时,实参可以是表达式
B)调用函数时,实参变量与形参变量可以共用内存单元
C)调用函数时,将为形参分配内存单元
D)调用函数时,实参与形参的类型必须一致
15-下列语句中,不正确的是 ( C& )。
a[]={"China"};&&&&&&&&&&&&
B)char a[]="China";
C)printf("%s",a[0]);&&&&&&&&&&&&&
D)scanf("%s",a);
16-若有以下函数调用语句fun(a+b, (x,y),
fun(n+k,d,(a,b)));在此函数调用语句中实际参数的个数是(&&
17-下面程序
&char *a="1234";&
&printf("\n");&
fun ( char *s)
& if(*s) {t = *s++; fun(s); }
& if(t !='\0') putchar( t );
输出为( B& ).
A) 1234&& B)
4321&C)1324&& D)
18-C规定,简单变量做实参时,它与对应形参之间的数据传递方式是(&
A) 地址传递&
B)单向值传递
C)有实参传递到形参,再由形参传回给实参。
19-执行完下列语句段后, i值为( C& ).
&int f(int x)
&{ &int k = x+1;
&&t=k;& k=x;
&i=f(f(1));
A) 1&B) 2&&C)
3&&D) 以上都错
20-下列程序段的运行结果为( B& ).
float f(int x)
&& x=x+3.6;
& printf("%.1f",f(2));
D) 以上都不对
21-执行下列程序后, 变量a的值应为( A& ).
& int f(int x,int y)
&& {return x*y;}
& {int a=2;
a=f(f(a,a*a),f(a+a,a/3));
A) 0&&& B)
22-若有以下函数定义,则在主函数中正确的调用语句是(& B&
&viod fun(int& array[3][5])
{ ………..}
{ int& a[3][5],
&& ……..}
A)fun(a[3][5]);
B)b=fun(a);
C) fun(a);
D) fun(&a);
23-若有以下变量说明和函数定义:
int a=4,b=6,c,k; &
char ch='x';&&
float x,y,z;
sub(int x, int y, char ch, float *z)
{ switch(ch)
{case '+': *z=x+y;
&&case '-': *z=x-y;
&&case '*': *z=x*y;
&&case '/':
&&&&&&&&&&&&&&
则以下合法的函数调用语句是(&&
A) sub(10,20,ch,y);&&
B) sub(1,2+3,'+',&z);
C) sub(sub(1,2,'+',&y), sub(3,4,'+',&x),'-',&y);
D) sub(a,b,&x,ch);
24-下面程序
f ( int x )
{ if ( x= = 0 || x = = 1 ) return ( 3 ) ;
& else& return (
x&f(x&2)); 
&printf ("%d\n", f(9));
输出结果是(&
A) 7&B) 3&C)
25-以下说法中正确的是(& B ).
A)一个函数在它的函数体内调用它自身称为嵌套调用。
B)一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。
C)一个函数在它的函数体内调用其它函数称为递归调用。这种函数称为递归函数。
D)一个函数在它的函数体内不能调用自身
26-以下叙述中不正确的是(&
A) 在不同的函数中可以使用相同名字的变量
B) 函数中的形式参数是局部变量
C) 在一个函数内定义的变量只在本函数范围内有效
在一个函数内的复合语句中定义的变量在本函数范围内有效&&&
27-C函数返回值的类型由(&
D&&& )决定.
A)调用函数时临时
B)return语句中的表达式类型
C)调用该函数的主调函数类型
D)定义函数时指定的函数返回值类型
28-执行下列语句后,程序的运行结果为( A ).
&int a=10;
printf("%d",a);
29-以下说法中不正确的是( D&& ).
A)主函数中定义的变量只在主函数内部有效
B)形式参数是局部变量
C)在函数内部定义的变量只在本函数范围内有效
D)当全局变量与局部变量同名时,局部变量不起作用
30-当全局变量与函数内部的局部变量同名时,则在函数内部( A& ).
A)全局变量有效
B)局部变量有效
C)全局变量与局部变量都有效
D)全局变量与局部变量都无效
1-设下面程序段中调用fun函数传送实参a和b:
&{ char a[10],b[10];
&& fun(a,b);
&则在fun函数头部中,对形参正确的定义是:(BCD)
&A) fun(char
&B) fun(char a1[],char
&C) fun(char p[10], char
&D) fun(char *s1,char
1 形参可以是常量、变量或表达式。
如函数值的类型与返回值类型不一致,以函数值类型为准。
下面两种写法等价。
(1) int fun(int x,int
y)&&&&&&&&&&
(2) int fun(x,y)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
4 在C语言中,最好使用全局变量.
5 以下说法是否正确:若调用C标准库函数,调用前必须重新定义。
6 形式参数和实际参数的个数可以不同。
7 数组名做函数的参数时,实参数组和形参数组大小一定要一致。
用数组名做函数参数,形参数组可以不指定大小。
9 C语言中函数的返回值类型是由return语句中的表达式类型决定的。
数组名作为函数参数,应该在主调函数与被调函数中分别定义数组,不能只在一方定义。
11 下面的程序是否有一个整型输出值。
& printf("%d",a);
&void pp()
以数组名作为参数时,数据传送方向是“双向的”。即形参值可以传回给实参。
所有的函数都是平行的,一个函数并不从属于另一个函数。
14 只有主函数才可以调用其它函数。
15 在C语言中,函数可以递归调用或递归定义。
16 在同一文件中,外部变量与局部变量同名。在局部变量的作用范围内,外部变量的值等于局部变量的值。
17 main函数中定义变量是全局变量。
18 当全局变量与函数内部的局部变量同名时,则在函数内部全局变量有效。
1-执行完下列语句段后, i值为【 1& 】。
&int f(int x)
&& {int k = 0;
&&& return
&i=f(f(1));
对于类型相同的指针变量,不能进行哪种运算(&&
A) -&B) +&C)
若有以下说明,则正确的赋值表达式是(&& )。
A) p=&x&&&
B) p=x&&& C)
有如下语句int
a=10,b=20,*p1,*p2;p1=&a;p2=&b;若要实现p1,p2均指向b,可选用的赋值语句是(&&
*p1=*p2;&&&&&&&
p1=p2;&&&&&
p1=*p2;&&&&&&&
D) *p1=p2;
以下程序的运行结果是(&& )。
sub(int x,int y,int *z)
{int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("M,M,M\n",a,b,c);}
A)5,2,3& B)-5,-12,-7&
C)-5,-12,-17& D)5,-2,-7
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是(&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&
{int *p,*q,a,b;
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
printf("input a:");
&&&&&&&&&&&&&&&
scanf("%d",*p);
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
A)& *p表示的是指针变量p的地址& B)
*p表示的是变量a的值,而不是变量a的地址
&&&&&&&&&&&&
*p表示的是指针变量p的值&& D)
*p只能用来说明p是一个指针变量。
变量的指针,其含义是指该变量的(&& )。
& A) 值&& B)
地址& C)名& D)一个标志
若有说明:int *p,m=5,n; 以下正确的程序段是(&&
A)p=&n;&&&&&&&&&&&&&&&&
B)p=&n;&&&&&&&&&&&&&
C)scanf("%d",&n);&&
D)p=&n;&&&&&&&&&&&
scanf("%d",&p);&&&&&&&&&
scanf("%d",*p);&&&&&&
*p=n&&&&&&&&&&&&&&
下面程序段运行结果是(&& )。
char *p="%d,a=%d,b=%d\n";
int a=111,b=10,c;
c=a%b;& p+=3;
printf(p,c,a,b);
A)1,a=111,b=10&&&&&
B)a=1,b=111&&&&
C)a=111,b=10&& D) 以上结果都不对。
执行下面程序段后,ab的值为(&& )。
& int *var,
&& ab=100;var=&
ab=*var+10;
若有定义:int x,*则正确的赋值表达式是(&&
C)*pb=&x&& D)*pb=*x
下面程序运行结果是(&& )。
void fun(int x)
{ printf("%d\n",++*x);
{int& a=25;fun(&a);}
A)23& B)24&&
对于两个类型相同的指针变量,不能进行(&& )运算?
以下程序的输出结果是(&& )。
a. 4&&& b.
8&&& d. 10
&{ int& k=2,m=4,n=6;
*pk=&k,*pm=&m,*p;
&& *(p=&n)=*pk*(*pm);
&& printf("%d\n",n);
a[10]={1,2,3,4,5,,6,7,8,9,10};*p=a;则数值为9的表达式是(&&
B. *(p+8)&&& C.
若有以下说明和语句,且0≤i<5,则下面哪个答案(&&
)是对数组元素地址的正确表示?
float a[]={1.6,3.0,-5.4,7.8,94.0},*p,i;
A) &(p+i)&B) a++&C)
&p&D) &p[i]
若有以下说明, 则a[*(a+a[3])]的值为(&&
int a[]={8,1,2,5,0,4,7,6,3,9};
A) 8&B) 3&C)
0&D) 不合法
以下程序运行后,输出结果是(&& )。
&int a[10]={19,23,44,17,37,28,49,36},*p;
&printf("%d\n",(p+=3)[3]);
A) 44&B) 17&C)
49&D) 运行时出错,无定值
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 c语言数组怎么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信