则该程序运行后,m的值是
A) 4 B) 3 C) 2 D) 1
30.有一函数
1 x>0
y= 0 x=0
-1 x<0,
以下程序段中不能根据x的值正确计算出y的值的是____。
A) if(x>0) y=1;else if(x==0) y=0;else y=-1;
B) y=0;if(x>0) y=1;else if(x<0) y=-1;
C) y=0;if(x>=0)if(x>0) y=1;else y=-1;
D) if(x>=0) if(x>0) y=1;else y=0;else y=-1;
31.以下选项中,与k=n++完全等价的表达式是___。
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
32.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是
for (i=5;i;i--)
for(j=0;j<=4;j++){...}
A) 20 B) 25C) 24 D) 30
33.若有以下定义:
float x; int a,b;
则正确的switch 语句是
A) switch(x) B) switch(x)
{ case .0:printf("*\n"); { case 1,2:printf("*\n");
case 2.0:printf("**\n"); case 3:printf("**\n");
} }
C)switch(a+b)D) switch(a+b);
{ case 1:printf("\n");{ case 1:printf(."*\n");
case 1+2:printf("**\n"); case 2:printf("**\n");
} }
34.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为
A)2,0 B)5,0 C) 5,5D) 2,5
#include
main( )
{ int v1=0,v2=0;
char ch;
while((ch=getchar( ))!=’#’)
switch(ch)
{ case ‘a’:;
case ‘h’:;
default: v1++;
case ‘0’: v2++;
}
printf(“%d,%d\n”,v1,v2);
}
35.有如下程序,该程序的输出结果是
main0
{ 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=1B) a=1,b=1 C) a=1,b=0 D) a=2,b=2
36.若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是
A) swich(a+b); B) switch(a*a+b*b)
{ case 1:y=a+b; break; {case 3:
case 0:y=a-b; break; case 1:y=a+b;break;
} case 3:y=b-a,break;
}
C) switch (a) D) switch(a-b)
{ case c1 :y=a-b; break {default:y=a*b;break;
case c2: x=a*d; break case 3:case 4:x=a+b;break;
default:x=a+b; case 10:case 11:y=a-b;break;
} }
37.有以下程序,程序运行后的输出结果是
main()
{ int a=16,b=20,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf("%d\n",m);
}
A) 1 B) 2C)3 D) 4
38.有以下程序,执行后输出的结果是
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
A) 011122B) 012 C) 012020 D) 120
39.有以下程序,程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()
main( )
{ char k; int i;
for(i=1;i<3;i++)
{ scanf("%c",&k);
switch(k)
{ case '0': printf("another\n");
case '1': printf("number\n");
}
}
}
A) another B)another C)another D)number
number number number number another number
40.假定a和b为int型变量,则执行以下语句后b的值为
a=1; b=10;
do
{ b-=a; a++; }
while(b--<0) ;
A) 9 B) -2 C) -1 D) 8
41.设x和y均为int型变量,则执行下的循环后,y值为
for(y=1,x=1;y<=50;y++)
{ if(x>=10) break;
if (x%2==1)
{ x+=5; continue;}
x-=3;
}
A) 2 B) 4 C) 6D) 8
42.设j为int型变量,则下面for循环语句的执行结果是
for( j=10;j>3;j--)
{ if(j%3)j--;
--j; --j;
printf("%d ",j);
}
A) 6 3 B) 7 4C) 6 2 D) 7 3
43.有以下程序,输出结果是
main()
{ int i, j;
for(j=10;j<11;j++)
{for(i=9;i=j-1)printf("%d",j);
}
}
A) 11 B) 10 C) 9 D) 10 11
44.当执行以下程序段时
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
x=-1;
do { x=x*x;} while(!x);
45.执行以下程序后,输出的结果是
A)-1 B)1 C)8D)0
main()
{ int y=10;
do {y--;} while(--y);
printf(“%d\n”,y--);
}
46.在下列选项中,没有构成死循环的程序段是
A) int i=100 B) for(;;);
while (1)
{i=i%100+1;
if(i>100)break;
}
C)int k=1000; D)int s=36
do{++k;} while(k>=1000); While(s);--s;
(注意:int数的范围)
47.执行语句:for(i=1;i++<4;);后变量i的值是
A) 3 B) 4 C) 5 D) 不定
48.以下程序的输出结果是
A) x=4 B) x=8C) x=6 D) x=12
main( )
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2) continue;
x++;
}
x++;
}
printf(“x=%d\n”,x);
}
49.运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为
A) m=3 B) m=2 C) m=1 D) m=0
main( )
{int m,n;
printf{“Enter m,n:”}; scanf(“%d%d,&m,&n”);
while(m!=n)
{ while(m>n)m-=n;
while(n>m)n-=m;
}
printf(“m=%d\n”,m);
}
50.以下程序的输出结果是
A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1
main( )
{ int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
51.以下程序的输出结果是
A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0
main( )
{ int n=4;
while(n--) printf("%d ",--n);
}
52.以下程序的输出结果是
A) 编译不通过,无输出B) aceg C) acegi D) abcdefghi
main( )
{ int i;
for(i='A';i<'I';i++,i++) printf("%c",i+32);
printf("\n");
}
53.以下叙述正确的是
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B) do一while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
54.下列程序的输出结果是
A)4 B) 2 C)1 D)0
main()
{ int i,j,m=0,n=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
if(j>=i) m=1;n++;
printf("%d\n",n);
}
55.以下程序段的执行结果是
A) a=12 y=12B) a=12 y=12
a=14 y=16 a=16 y=28
a=16 y=20
C) a= 12 y= 12 D) a= 12 y= 12
a= 14 y= 26 a= 14 y= 44
int a, y;
a=10;y=0;
do
{ a+=2; y+=a;
Printf("a=%d y=%d\n”,a,y);
if(y>20) break ;
}while(a=14);
56.有如下程序,该程序的执行结果是
main0
{ int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
A) 6 B) 3 C) 死循环D) 0
57.有如下程序,该程序的执行结果是
main0
{ int x=23;
do
{ printf("%d",x--);}
while(!x);
}
A) 321 B) 23 C) 不输出任何内容D) 陷入死循环
58.有如下程序,该程序段的输出结果是
main0
{ int n=9;
while(n>6) {n--;printf("%d",n);}
}
A) 987 B) 876 C) 8765 D) 9876
59.有以下程序段
int k=0
while(k=1)k++;
while 循环执行的次数是
A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次
60.以下程序执行后sum的值是
A) 15 B) 14 C) 不确定D)0
main()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
}
61.有以下程序段
int x=3;
do
{ printf("%d",x-=2); }
while (!(--x));
其输出结果是
A) 1 B) 3 0 C) 1 -2D) 死循环
62.t为int类型,进入下面的循环之前,t的值为0
while(t=l)
{……}
则以下叙述中正确的是
A) 循环控制表达式的值为0 B) 循环控制表达式的值为1
C) 循环控制表达式不合法D) 以上说法都不对
63.以下程序的输出结果是
main()
{int num= 0;
while(num<=2)
{ num++; printf("%d\n",num);}
}
A) 1 B) 1C) 1 D) l
2 2 2
3 3
4
64.以下程序的输出结果是
main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{ if(b>=10) break;
if (b%3==1)
{ b+=3; continue; }
}
printf("%d\n",a);
}
A) 101 B) 6 C) 5 D) 4
65.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输
出,程序如下:
main()
{int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{scanf("%f",&score); sum+=score;}
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是___。
A) sum=0.0; B) sum+=score; C) ave=sum/4.0; D) printf("NO%d:%f\n",n,ave);
66.有以下程序段
int n=0,p;
do {scanf("%d",&p);n++;} while(p!=12345&&n<3);
此处do-while循环的结束条件是____。
A) p的值不等于12345并且n的值小于3 B) p的值等于12345并且n的值大于等于3
C) p的值不等于12345或者n的值小于3 D) p的值等于12345或者n的值大于等于3
67.有以下程序,执行后输出的结果是
main()
{ int i=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
A) 16B) 12 C) 28 D) 21
68.有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是
main()
{ int s=0,a=1,n;
scanf("%d",&n);
do
{ s+=1; a=a-2; }
while(a!=n);
printf("%d\n",s);
}
A)-1 B)-3C)-5 D)0
69.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是
A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;
70.有以下程序, 程序运行后的输出结果是
main()
{ int k=4,n=0;
for( ; n{ n++;
if(n%3!=0) continue;
k--;
}
printf("%d,%d\n",k,n);
}
A)1,1 B)2,2 C)3,3D)4,4
71.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10
main()
{ int n; float s;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是
A)s=1.0; B)for(n=10;n>1;n--)
C)s=s+1/n; D)printf("%6.4f\n", s);
72.有以下程序,程序执行后的输出结果是()
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
73.有以下程序,程序执行后的输出结果是()
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
}
A)自然数1~9的累加和 B)自然数1~10的累加和
C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和
74.有以下程序,程序执行后的输出结果是()
A)n=5 B)n=2 C)n=3 D) n=4
main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i*%3) continue;
n++;
} while(!i);
n++;
}
printf("n=%d\n",n);
}
二、填空题
75.已知字符A的ACSII码值为65,以下语句的输出结果是【B 66】
char ch=’B’;
printf("%c %d\n",ch,ch);
76.有以下语句段
int n1=10,n2=20;
printf("【n1=%d\nn2=%d】",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
77.若从键盘输入58,则以下程序输出的结果是【585858】。
main()
{ int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
78.有以下程序,执行后输出结果是【-4】。
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1; x=1
if(m) x-=2; x=-1
if(x) x-=3; x=-4
printf("%d\n",x);
}
79.有以下程序,程序运行时输入:12<回车>,执行后输出结果是【12】。
#include
main( )
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-‘0’; n2=n1*10+(ch2-‘0’);
printf("%d\n",n2);
}
Ch1=1 ch2=2
80.下列程序段的输出结果是【passwarn】。
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");
}
81.若有语句
int i=-19,j=i%4;
printf("%d\n",j);
则输出的结果是【-3】。
82.若有程序,要求给i赋10,给j赋20,则应该从键盘输入【i=10,j=20】。
main()
{ int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n ",i,j);
}
83.若有以下程序,执行后输出结果是【1】。
main()
{ int p,a=5;
if(p=a!=0) p=1
printf("%d\n",p);
else
printf("%d\n",p+2);
}
84.若有以下程序,执行后输出结果为【5 0 3】。
main()
{ int a=4,b=3,c=5,t=0;
if(a
t=a;
a=b; a=3
b=t; b=0
if(at=a; t=3
a=c; a=5
c=t; c=3
printf("%d %d %d\n",a,b,c);
}
没有{},所有红色部分不属于选择结构
85.若有以下程序,执行后输出结果是【7】。
main()
{ char a;
a='H'-'A'+'0';
printf("%c\n",a);
}
72-65+48=55
86.以下程序运行后的输出结果是【3】。
main()
{ int p=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
运算符的优先级
87.以下程序运行后的输出结果是【b】。
main()
{ char m;
m='B'+32; printf("%c\n",m);
}
88.以下程序运行后的输出结果是【yes】。
main()
{ int a=1,b=3,c=5;
if (c=a+b) printf("yes\n"); c=4
else printf("no\n");
}
89.下面程序的功能是输出以下形式的金字塔图案是:
***
*****
*******
main( )
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++) printf(" ");
for(j=1;j<=【】;j++) printf("*");
printf("\n");
}
}
在【】中应填入的是()
A)i B)2*i-1 C)2*i+1 D)i+2
90.有以下程序,执行后输出结果是【0】。
main( )
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf("%d\n",t);
}
91.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。
#include< Stdio.h>
main()
{ int a, b, c, i;
a=c=0;
for(i=0;i<=10; i+=2 )
{ a+=i;
【b=i+1或b=1+i】;
c+=b;
}
printf("偶数之和=%d\n”,a);
printf("奇数之和=%d\n”,c-11);
}
92.下面程序的功能是:输出 100以内能被 3整除且个位数为 6的所有整数,请填空。
#include<stdio.h>
main()
{ int i, j;
for(i=0;【i<=9或i<10或9>=i或10>i】; i++)
{ j=i *10+6;
if (【j%3!=0或j%3】) continue;
printf("%d", j);
}
93.若输入字符串:abcde<回车>,则以下while循环体将执行【0】次。
While((ch=getchar())=='e') printf("*");
94.以下程序运行后的输出结果是【52】。
main()
{ int i=10, j=0;
do
{ j=j+i; i--;
}while(i>2);
printf("%d\n",j);
}
J=10 i=9
J=19 i=8
J=27 i=7
J=34 i=6
J=40 i=5
J=45 i=4
J=49 i=3
J=52 i=2
95.设有以下程序: 程序运行后,如果从键盘上输入1298;则输出结果为【8921】。
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
第一次 n2=1298 n1=8
第二次 n2=129 n1=9
第三次 n2=12 n1=2
第四次 n2=1 n1=1
96.以下程序的输出结果是【5】。
main()
{ int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
I=2 s=2
I=3 s=5
97.以下程序运行后的输出结果是【1 3 2】。
main()
{ int i,m=0,n=0,k=0;
for(i=9; i<=11;i++)
switch(i/10)
{ case 0: m++;n++;break;
case 10: n++; break;
default: k++;n++;
}
printf("%d %d %d\n",m,n,k);
}
M=1 n=1
K=1 n=2
K=2 n=3
98.执行以下程序后,输出'#'号的个数是【6】。
#include
main()
{ int i,j;
for(i=1; i<5; i++)
for(j=2; j<=i; j++)
putchar('#');
} 循环嵌套,i=1 0次 i=2 1次 i=3 2次 i=4 3次99.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【10】。
for(i=0,j=10;i<=j;i++,j--)
k=i+j;
每次相加都是10
c语言第五章习题答案
第一题: 1. 从键盘输入10个数,求和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;} printf("s=%d\n",s ); } 2. 从键盘输入10个数,求平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;}
ave=s/10; printf("s=%d,ave=%d\n",s ,ave ); } 3. 从键盘输入10个数,求偶数的和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) s+=x;} printf("s=%d\n",s ); } 4. 从键盘输入10个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0;
for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) {s+=x;k++;} } ave=s/k; printf("s=%d,ave=%d\n",s,ave ); } 5. 从键盘输入n个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0; int n; scanf("%d",&n); for(i=0;i大学c语言复习题附答案
判断题 1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。× 2.通常硬盘安装在主机箱内,因此它属于主存储器。× 3.指令与数据在计算机内是以ASCII码进行存储的。× 4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集 合。√ 5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过 编译才能执行。√ 6.计算机的所有计算都是在内存中进行的。× 7.字长是指计算机能直接处理的二进制信息的位数。√ 8.计算机区别于其他计算工具的本质特点是能存储数据和程序。√ 9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。× 10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、大 写英文字母。× 11.多台计算机相连,就形成了一个网络系统。× 12.在Internet网上,IP地址、E-mail地址都是唯一的。√ 13.不同类型的变量在内存中占用存储空间的大小都是一样的。× 14.表示数学式3数据结构C语言版第四章 串
第四章串 重点难点 理解"串"类型定义中各基本操作的特点,并能正确利用它们进行串的其它操作;掌握串类型的各种存储表示方法;理解串的两种匹配算法。 典型例题 1、简述下列每对术语的区别: 空串和空白串;串常量和串变量;主串和子串;静态分配的顺序串和动态分配的顺序串;【解】 (1)空串是指不包含任何字符的串,它的长度为零。 空白串是指包含一个或多个空格的串,空格也是字符。 (2)串常量是指在程序中只可引用但不可改变其值的串。 串变量是可以在运行中改变其值的。 (3)主串和子串是相对的,一个串中任意个连续字符组成的串就是这个串的子串,而包含子串的串就称为主串。 (4)静态分配的顺序串是指串的存储空间是确定的,即串值空间的大小是静态的,在编译时刻就被确定。 动态分配的顺序串是在编译时不分配串值空间,在运行过程中用malloc和free等函数根据需要动态地分配和释放字符数组的空间(这个空间长度由分配时确定,也是顺序存储空间)。 2、以HString为存储表示,写一个求子串的算法。 【解】HString 是指以动态分配顺序串为存储表示,其定义为: typedef struct { char *ch; int length; }HString; void *substr( HString *sub,HString *s,int pos,int len) {//用sub返回串s的第pos个字符起长度为len的子串。sub初始时为一空串 //pos的合法位置为0<=pos<=s->length-1 int i; if (pos<0||pos>s->length-1||len<=0) Error("parameter error!");//参数不合法,子串为空串 if (s->lengthlen=s->length-pos;//设置子串的串长 else sub->length=len; //设置子串的串长 sub->ch=(char *)malloc(len*sizeof(char));//为sub->ch申请结点空间 for(i=0;ilength;i++)//将s串中pos位置开始的共sub->length个字符复制到sub串中
c语言程序设计课后习题答案 第五章
/*练习5-3*/ #include int prime(int m) { int i; for(i=2;i<=m-1;i++) if(m%i==0) break; if(i==m) return 1; else return 2; } main() { int i,m,n,sum=0,a=0; printf("enter m and n:(1<=m<=n<=500)\n"); scanf("%d",&m); scanf("%d",&n); for(i=m;i<=n;i++) { if(prime(i)==1) sum=sum+i; a=a+1; } printf("之间的素数和为:%d\n",sum); printf("之间的素数个数为:%d\n",a); } /*习题5.1*/ #include int fn(int a,int n) { int i,sum=0,m=1,c; for(i=1;i<=n;i++) { sum=sum+m; m=m*10; } c=sum*a; return c; }
main() { int a,n,i,x,y=0; printf("enter a and n:\n"); scanf("%d",&a); scanf("%d",&n); for(i=1;i<=n;i++) { x=fn(a,i); y=y+x; } printf("y=%d\n",y); } /*习题5.2*/ #include int countdigit(int number,int digit) { int sum=0; while(number>0) { if(number%10==digit) sum=sum+1; number=number/10; } return sum; } main() { int number,y; printf("enter a number:\n"); scanf("%d",&number); y=countdigit(number,2); printf("y=%d\n",y); }
C语言预习及课后习题(参考答案1-5)
第一章C语言概述 课前预习题 1.函数 2.main()函数3.单行注释、块注释、A 参考分析:C语言总是从main函数开始,main函数结束。但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。 2.C 参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。因此,如果注释中存在错误,系统是不可能发现的。另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。 3.D 参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。 4. C 5.B 参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合C语言的规则。 6.C 7.B 8.C 9.C 10.C 11.绘制NS算法流程图。 (1)输入10个数,求其中的最大值。 (2)输入3个数,将它们升序排列输出。 (3)输入2个数,求它们的最大公约数。(4)输入一元二次方程的系数a、b、c,判断其根。
第二章数据类型、运算符与表达式 课前预习题 1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算2.1、4、8 3.float、double 4.八进制、十进制、十六进制5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12.13.14.4 15.1 16.0 17.9 18.字符、数字、下划线19.'f' 20.21.int型22.m/10%10*100+m/100*10+m%10 课后习题 1.A 分析:在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A符合16位PC机中的具体环境。 2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。 3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。 4.A 参考分析:是关键字的有:char、case、while。 5.B 参考分析:不是关键字的:include、scanf、type 6.C 参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。 7.C 参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。 8.A 参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。 9.D 参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常
C语言第四章习题带答案-2012.10.16更新
练习4-1答案 一、选择题 1.已知:char c='A'; int i=1, j;,执行语句j=!c&&i++;,则i和j的值是( B )。 A.1,1 B.1,0 C.2,1 D.2,0 2.已知:int x=1, y=2, z;,则执行z=x>y?++x:++y;,则z的值为( C )。 A.1 B.2 C.3 D.4 3.已知:int a=4, b=5, c;,则执行表达式c=a=a>b后变量a的值为( A )。 A.0 B.1 C.4 D.5 4.已知:char ch='A';,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch;的值是( B )。 A.'A' B.'a' C.'Z' D.'z' 5.若w=1, x=2, y=3, z=4;,则条件表达式w>x?w:y10?x+100:x-10); printf("%d",w++||z++); printf("%d",!w>z); printf("%d",w&&z); A.0111 B.1111 C.0101 D.0100 7.已知:a=b=c=1且a、b、c均为int型变量,执行以下语句:++a||++b&&++c; 则变量a值为( ①C ),b值为( ②A )。 ①A.不正确B.0 C.2 D.1 ②A.1 B.2 C.不正确D.0 8.执行下面语句后x的值为( D )。 int a=14, b=15, x; char c='A'; x=((a&b)&&(c<'a')); A.TRUE B.FALSE C.0 D.1 9.要判断char型变量m是否是数字,可以使用下列表达式( B )。 A.0<=m&&m<=9 B.'0'<=m&&m<='9' C."0"<=m&&m<="9" D.前面三个答案均是错误的 10.能正确表示“当x取值在[1..10]和[200..210]范围内为真,否则为假”的表达式是( C )。 A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 11.设x、y和z是int型变量,且x=3, y=4, z=5,则下面表达式中值为0的是( D )。 A.'x'&&'y'B.x<=y C.x||y+z&&y-z D.!((x=y&&ch<'B'&&!y的值是( C )。 A.0 B.语法错C.1 D.“假” 13.判断char型变量c1是否为小写字母的正确表达式为( D )。
C语言练习习题(带详解答案)
欢迎阅读 一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; 2. 信息。 scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area);
printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){ int data;
char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: } 5. float fee; printf(“please input hour:\n”); scan f(“%d”,&hour); if(hour<=10) fee=30;
else if(hour>=10&&hour<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee); } 6. } 7、编程序实现求1-10之间的所有数的乘积并输出。 #include void main( ) { int i; long sum=1;
c语言程序设计课后习题答案高等教育出版社
#include<> main() { float x=,y=,z=; printf("x=%f\n",x); printf("y=%f\n",y); printf("z=%f\n",z); } (1) #include<> main() { int a=12,b=3; float x=,y=; printf("%f\n",(float)(a*b)/2); printf("%d\n",(int)x%(int)y); } (2) #include<> main() { int x=32,y=81,p,q; p=x++; q=--y; printf("%d %d\n",p,q); printf("%d %d\n",x,y); } #include<> main() { int x,b0,b1,b2,s; printf("Inputx:"); scanf("%d",&x); b2=x/100; printf("骰子出现 2 printf("骰子出现 3 printf("骰子出现 4 printf("骰子出现 5 printf("骰子出现 6
} (1) void Swap(int *x,int *y) { int *pTemp;.\n"); else if(strcmp(userInput,password)<0) printf("Invalid password!user inputpassword...\n"); return 0; } #include<> #define N 24 unsigned int CountLetter(char str[]); int main() { char a[N]; printf("Input a letter:\n"); gets(a); printf("The length of the letter is:%d\n",CountLetter(a)); return 0; } unsigned int CountLetter(char str[]) { char *p=str; int c=0,flag=0; while(*p!='\0') { if(*p!=' ') flag=1; else if(flag==1) { c++; flag=0; } p++; } return c+1; } #include<>
c语言第4章 选择结构程序设计习题答案
第4章选择结构程序设计 习题(P111) 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2 解:该题在求解过程中注意: 一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低; 二、逻辑表达式的求值规则。(P94) 所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1 4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。 分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。 参考程序如下: main() { int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/ scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/ if(a>b) max=a; else max=b; if(max
C语言 选择结构程序设计练习题
第四章选择结构程序设计 一、填空 1.在C语言中,表示逻辑“真”值用_________。 2.得到整型变量a的十位数字的表达式为_________。 3.表达式:(6>5>4)+(float)(3/2)的值是_________。 4.表达式:a=3,a-1‖--a,2*a的值是_________。(a是整型变量) 5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。(a是整型变量)6.C语言编译系统在给出逻辑运算结果时,以数值_________代表“真”,以 _________代表“假”;但在判断一个量是否为“真”时,以_________代表“假”,以_________代表真。 7.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。 8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。 二、编程: 1.企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数? 2.输入三个整数x,y,z,请把这三个数由小到大输出。 3.输入某年某月某日,判断这一天是这一年的第几天? 4.本程序演示从键盘输入x的值,计算并打印下列分段函数的值。 y=0(x<60) y=1(60<=x<70) y=2(70<=x<80) y=3(80<=x<90)
C语言课后练习题答案第五章
作业四:简单程序设计 1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B);如果字符串长度小于5,则输出按方式(C)。(5分)(重要) A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 2.阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为(D)。(5分) main() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z);要和这里一样 printf(“x+y+z=%d\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 3.根据下面的程序及数据的输入和输出形式,程序中输入数据的正确形式应该为(WXY)。(5分) main() { char ch1,ch2,ch3;
scanf(“%c%c%c”,&ch1,&ch2,&ch3); printf(“%c%c%c”,ch1,ch2,ch3); } 4.以下的输出结果是(x=1,y=2*sum*=3 10 Squard is : 100)。(5分) main() { int x=1,y=2; printf(“x=%d y=%d * sum * =%d\n”,x,y,x+y); printf(“10 Squared is : %d\n”,10*10); } 5.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2 =’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:(20分) a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.6 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=’a’ or 97(ascll) c2=’b’ or 98(ascll) main()
C语言基础练习题(含答案)
第一章 C 语言基础知识 1.1 选择题 1. 以下不是C 语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C 语言标识符的是() A .abc123 B.C._123_ D._ok 3. 正确的C 语言标识符是()。 A ._buy_2 B .2_buy C._buy D .buy 4. 请选出可用作 C 语言用户标识符的一组标识符()。 A .void B.a3_b3 C.For D .2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是( A.\\ B.\0xAA )。C.\t D .\0 6. 不属于 C 语言关键字的是()。 A .int B .break C.w hile D .character 7. 是 C 语言提供的合法关键字的是()。 A .Float B.signed C.integer D.C har 8. 以下不能定义为用户标示符的是()。
A .scanf B.Void C._3com_ D.int 9. 一个C 程序是由()。 A. —个主程序和若干子程序组成 B. —个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 10. C 语言程序的基本单位是()。 A ?程序行 B ?语句 C ?函数 D .字符 11. 下列说法中,错误的是()。 A ?每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B ?每个函数都有一个函数头和一个函数体,主函数也不例外 C ?主函数只能调用用户函数或系统函数,用户函数可以相互调用 D ?程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 A . C语言程序总是从第一个定义的函数开始执行 B ?在C语言程序中,要调用的函数必须在main()函数中定义 C.C 语言程序总是从main()函数开始执行 D . C语言程序中的main()函数必须放在程序的开始部分 13. C 编译程序是()。 A.C 程序的机器语言版本 B .一组机器语言指令 C ?将C源程序编译成目标程序
C语言第五章习题带答案更新Word版
练习5-1答案 一、选择题 1.合法的数组说明语句是( B )。 A.int a[]="string"; B.int a[]={0,1,2,3,4,5}; C.char a="string"; D.char a[5]={'0', '1', '2', '3', '4', '5'}; 2.以下对一维整型数组a的说明正确的是( D )。 A.int a(10); B.int n=10, a[n]; C.int n; D.#define SIZE 10 scanf("%d", &n); int a[SIZE]; int a[n]; 3.已知:int a[10];,则对a数组元素的正确引用是( D )。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] 4.以下对一维数组a进行正确初始化的语句是( C )。 A.int a[10]=(0, 0, 0, 0, 0); B.int a[10]={}; C.int a[]={0}; D.int a[2]={10, 9, 8}; 5.对以下说明语句的正确理解是( B )。 int a[10]={6, 7, 8, 9, 10}; A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4] C.将5个初值依次赋给a[6]至a[10] D.因为数组长度与初值的个数不相同,所以此语句不正确 二、填空题 6.求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回文数。 例如:满足题意要求的数有:N=1,11*11=121;N=111,111*111=12321。 #include main() {int m[16], n, i, t, count=0; long a, k; printf("Result is:\n"); for (n=10; n<200; n++) { k=0; t=1; a=n*n; for (i=1; a!=0; i++) { ①; a/=10; }
严蔚敏《数据结构(c语言版)习题集》答案第四章串
《一定能摸到红球吗?》说课稿 林银花 一、教材说明: 1、课题:《一定能摸到红球吗?》 2、本节内容的地位和作用 在现代社会中,人们面临着更多的机会和选择,常常需要在不确定情境中作出合理的决策,概率正是通过对不确定现象和事件发生的可能性的刻画,来为人们更好的制定决策提供依据和建议.本节内容又是义务教育阶段,唯一培养学生从不确定的角度来观察世界的数学内容,让学生了解可能性是普遍的,有助于他们理解社会,适应生活. 3、教学目标设计: (1)认知目标: (A)经历猜测.实验.收集与分析试验结果等过程 (B)体会事件的发生的不确定性知道事情发生的可能性有多大。 (2)、能力目标: (A)经历游戏等的活动过程,初步认识确定事件和不确定事件 (B)在与其它人交流的过程中,能合理清晰地表达自己的思维过程; (3)、情感目标: (A)通过创设游戏情境,让学生主动参与,做“数学实验”,激发学生学习的热情和兴趣,激活学生思维。 (B)在与他人的合作过程中,增强互相帮助、团结协作的精神。 (C)体会到在生活中我们可以从确定和不确定两方面分析一件事情. 4、本课重点、难点分析: 学习的重点是初步体验事情发生的确定性和不确定性. 学习的难点是确定事件发生的可能性大小. 学习本节知识应注意猜测,试验,收集与分析实验结果,从中体会事件发生的可能性及大小. 二、教学对象分析: 1、初一学生性格开朗活泼,对新鲜事物特别敏感,且较易接受,因此,教学过程中创设的问题情境应较生动活泼,直观形象,且贴近学生的生活,从而引起学生的有意注意。 2、初一学生的概括能力较弱,推理能力还有待不断发展,所以在教学时,可让学生充分试验,收集,分析,帮助他们直观形象地感知。 3、初一学生已经具备了一定的学习能力,所以本节课中,应多为学生创造自主学习、
c语言第四章练习题答案
习 题 四 4.5编程判断输入整数的正负性和奇偶性。流程图如图4-1。 #include main() { int m; scanf("%d", &m); /*输入一个整数*/ if (m >= 0) /*是否为正数*/ { if (m%2 == 0) /*是正数,且能被2整除,是正偶数*/ { printf("%d is a positive even\n", m); } else /*不能被2整除,是正奇数*/ { printf("%d is a positive odd\n", m); } }/*if(m>=0)结束*/ else { if (m % 2 == 0) { printf("%d is a negative even\n", m); /*是负偶数*/ } else { printf("%d is a negative odd\n", m); /*是负奇数*/ } } } 程序运行结果如下: 第一次运行: 6↙ 6 is a positive even 第二次运行: -7↙ 6 is a negative odd 4.6编程计算分段函数:1x x e y e -??=??-? 000x x x >=<,输入x ,打印出y 值。流程图如图4-2。 #include #include main() { int x; double y; scanf("%d", &x); /* 输入一个整数*/ if (x > 0) { y = exp(-x); /*如果大于0,计算y=exp(-x)的值 */
《C语言程序设计》课后习题参考答案
高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。
11级《C语言程序设计》第1章-第4章参考答案
《C语言程序设计》第一章参考答案 一、选择题: 1.C 2. C 3. C 4. C 5. B 二、填空题: 1. 一主主 2. 源目标 《C语言程序设计》第二章参考答案 1.指出下列常数中哪些是符合C语法规定的: '\''\101''\' e3 019 0xle "ab\n" 1.e5 (2+3)e(4-2) 5.2e2.4 正确的:'\101' 0xle "ab\n" 1.e5 2. (1)改为: main( ) { float x,y=5,z=5, aver; x=7; aver=(x+y+z)/3; printf("aver=%f\n",aver); } (2)改为: main( ) { char c1='a'; char c2='b'; char c3='c'; int a=3,b='A'; printf("a=%db=\' %c \' \n\"end\"\n",a,b); printf("a%cd%c\bc%c\tabc\n",c1,c2,c3); } 3. 4. (1)9 ,10,9,10 (2)3 ,1 ,0 ,0 5. (1)0 (2)0 (3)9.5 (4)90 (5)10 (6)10 (7)’A’(8)2 (9)6.5 (10)0 (11)20 (12)0
6. 完全等价的是表达式(3)、(5)、(6) 7. 求变量x的绝对值 8. max=c > (a>b ? a : b) ? c : (a>b ? a : b); 9. 程序填空为: h= ((x-2)(x-2)+(y-2)(y-2)<=1)?10:0 ; 或补充为: h= (fabs(x<=2)&&fabs(y<=2))?10:0 ; 《C语言程序设计》第三章参考答案 一.选择题 1. C 2. C 3. D 4. C 5. D 6 . A 二.填空题 1. 1 2. 1 3. 2.5 4. 8 三.编程题 1. #include void main() { float a, v1, v2; int t=50; a=0.11; v1=0; v2=a*t*3600/1000; printf("v2=%.2f\n",v2); }
c语言程序设计第四章习题答案
第四章选择结构 1:实现输入一个字符的大小写字母的转换 #include void main() {char x='a'; printf("输入x:\n"); scanf("%c",&x); if( x>='A' && x<='Z') { x=x+32; /*是大写,转换为小写,至于为什么要+32吗,请看看 大小写字母的ASCII码差值*/ } else if( x>='a' && x<='z') { x=x-32; /*是小写,转换为大写*/ } /*其它不用理*/ printf("%c\n",x); } 2:输入一个大写字母实现,输出字母表中的前后字母,但是当时A 或是Z时提示输出的“没有前面的字母”,“没有后面的字母” #include void main() {char x; printf("输入一个大写字母x:\n"); scanf("%c",&x); if (x=='A') {printf("没有前面的字母");} if( x=='Z') { printf("没有后面的字母");} else// (x>'A'||x<'Z') {printf("%c, %c",x-1,x+1);} } 3:实现的是对百分制的评等级
#include void main() { float x; printf("请输入学生的成绩x的值\n"); scanf("%f",&x); if(x>=90&&x<=100) {printf("等级为A ");} else { if (x>=80&&x>=89) {printf("等级为B "); } else if (x>=70&&x<=79) {printf("等级为C "); } else if (x>=60&&x<=69) {printf("等级为D "); } else { printf("等级为E "); } } } 4:知道今天的日期,年月日,求出明天的年月日 #include int main() { int year,month,day; int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("请输入年月日,中间用空格隔开!\n"); scanf("%d %d %d",&year,&month,&day); if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29;//闰年二月最大值是29 if(month>12 || month<1) { printf("日期不合法!\n"); return 0; } if(day>maxdays[month-1])
C语言程序设计教程第四章练习题解析汇报(1)
单选题 1、关于C语言中的函数,下列描述正确的是() A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的嵌套均不可以嵌套 D.函数的定义和函数的调用均不可以嵌套 答案:B 解析:函数的定义不可以嵌套,但函数的调用可以嵌套 2、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个 A.3 B.4 C.5 D.6 答案:A 解析:(v1, v2), (v3,v4,v5)和v6一共三个实参 3、关于C语言中print()函数与scanf()函数,下列描述中正确的是() A.printf()函数可以向任何地方输出数据 B.printf()只向控制台输出数据 C.scanf()只能输入英文字母和数字 D.scanf()函数可以识别输入的空格 答案:B 解析:printf()是向控制台输出的函数 4、在C语言中,部函数需要添加的关键字是()
A.extern B.static C.this D.auto 答案:B 解析:在定义部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。 5、当调用时,会调用部函数 A.当调用时,会调用部函数 B.当调用时,会调用外部函数 C.当调用时,会调用两次,先调用部函数再调用外部函数 D.都不调用,会报错 答案:A 解析:当部函数与外部函数重名时,会优先调用部函数 6、在C语言中,声明外部函数需要添加的关键字是() A.extern B.static C.this D.auto 答案:A 解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字 7、关于C语言中的局部变量,下列描述中错误的是() A.局部变量就是在函数部声明的变量 B.局部变量只在函数部有效 C.局部变量只有当它所在的函数被调用时才会被使用