当前位置:首页 > C语言程序设计练习题 - 2012
27.下列程序段的输出结果是 。 int x=-10,y=1; if(x>=0)
if(x>0) y=0; else y=-1; printf(“%d”,y);
28.下列程序段的输出结果是 。 int k=1,sum=8; while(k<6)
{sum++;k++;} printf(“%d”,sum);
29.对于以下递归函数f,调用f(3)的返回值是 。 int f(int n)
{return(n<=0?1:f(n-1)+1);}
30.下列程序段的输出结果是 。 int c[]={1,7,12}; int *k; k=c; k++;
printf(“%d”,*k);
31.表达式(5==5==5)的值是 。
32.定义a为长度为10的字符串、同时为字符串赋初值\的语句为 。 33.定义语句char a[15]=\语句printf(\”,strcpy(a,b));的输出结果为 。
34.定义语句为char a[]=\语句printf(\输出 。
35.宏定义语句 #define f(x,y) printf(x,y)的宏调用格式是 f(\则预处理时其宏展开格式为 。
36.下列程序段的输出结果是 。 int k,a=3,b=2; k=(a==b)?0:1; printf(“%d”,k); 37. 表达式((2<<1)|2)的值是 。 38.下列程序段的输出结果是 。 #define M(x,y) (x*y) printf(“%d”,M(2,3+4));
39. 下列程序段的输出结果是 。 int n=6; switch(n)
{case 1:n=1;break; case 2:n=2;break; case 3:n=3;break; default:n=4; }
printf(“%d”,n);
9
40. 下列程序段的输出结果是 。 int k=0;
if(!(k==1)) print(“***”); else printf(“###”); 三、判断题
1. 只能用while语句构成循环。( ) 2. 不能用printf函数输出字符。( )
3. C程序中各函数之间既允许直接递归调用也允许间接递归调用。( ) 4. 在函数外部定义的变量称为全局变量。( ) 5. 宏定义的命令行可以看作是一条C语句。( )
6. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。( ) 7. C语言中以%O开头的数是八进制数。( )
8. 在程序的运行过程中,符号常量的值是可以改变的。( ) 9. 在C程序中,APH和aph代表不同的变量。( ) 10. 一个复合语句在语法上被认为是一条语句。( ) 四、程序填空题
1. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。
#include
int i;
for(i=1; ① ;i++) if( ② ) printf(\}
2. 输入x、y两个整数,按先大后小的顺序输出x、y。
#include
int x, y, *px, *py, ① ; scanf(\ ② ; ③ ;
if(x printf(\} 3. 以下程序实现的是计算数列1、3、5、?、2n-1、?的前n项之和,其中n由键盘输入。请填空完善该程序。 #include \void main( ) { long s,n,k,i; 10 scanf(\① ); k=2*n-1; ② ; for(i=1;i<=k;i=i+2) ③ ; printf(\} 4. 以下程序实现的是冒泡排序算法,将数组a的元素按由大到小的顺序排列。请填空完善该程序。 #include \#define N 12 void main() { int i,j,k; int a[N]={5,8,9,6,2,7,3,2,2,7,8,0}; printf(\排序前的序列:\ for(i=0;i printf(\ for(i=0;i for(j=0;j k=*(a+j); *(a+j)= ② ; ③ =k; } printf(\排序后的序列:\ for(i=0;i printf(\ printf(\} 5.输入20个数,输出它们的平均值,输出其中与平均值之差的绝对值为最小的元素。 #include {float a[20],pjz=0,s,t; int i,k; ① ; /*从键盘输入数据到数组中*/ for(i=0; i<20; i++) pjz+=a[i]; ② ; /*求平均值*/ s=fabs(a[0]-pjz); for(i=1;i if(fabs(a[i]-pjz) 6.下列程序读入时间数值,将其加1秒后输出,时间格式为: 11 hh:mm:ss,即时:分:秒,当小时等于24小时,置为0 。 #include struct{int hour ,minute, second;}time; void main() { scanf(\ ① ); /*结构体各成员赋值*/ time.second++; if(time.second==60) {time.minute++;time.second=0;} if(time.minute==60) {time.hour++;time.minute=0;} if( ② ) time.hour=0; /*判断是否满24小时*/ printf(\} 7.分别输出方阵中主对角线、副对角线上的元素和sum1和sum2。 #include {int a[SIZE][SIZE],m,n,sum1,sum2; for(m=0;m scanf(“%d”,&a[m][n]); sum1=sum2= ① ; /*赋初值*/ for(m=0;m {sum1=sum1+ ② ; /*主对角线元素求和*/ sum2=sum2+ ③ ; /*副对角线元素求和*/ } printf(“sum1=%d sum2=%d\\n”,sum1,sum2); } 8.统计当前目录下文本文件data.txt中小写字母出现的次数。 #include if((fp= ① (“data.txt”,”r”)==NULL); /*打开文件*/ {printf(“不能打开文件data.txt!\\n”); exit(0); } while((ch=fgetc(fp))!=EOF) if( ② ) count++; /*判断是否为小写字符*/ printf(“%d”,count); fclose(fp); } 五、阅读程序题 1. 写出下面程序的运行结果。 #include 12
共分享92篇相关文档