精品文档
} cnum[2]={1,3, 2, 7}; mai n() { printf( }
运行结果是:6
%d\\n”,c nu m[O].y * cn um[1].x );
4.
#i nclude
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; prin tf(\”,t); }
运行结果是:6
精品文档
三、程序填空
1输入一个字符,判断该字符是数字、字母、空格还是其他字符。
mai n() { char ch; ch=getchar();
if( ____ ch>='a'&ch<=z '||ch>= 'A'&&ch<='Z') prin tf(\else if( _____ ch>='0'&&ch<='9' )
prin tf(\else if( ____ ch== ‘ '
prin tf(\else
prin tf(\
2.下列程序的功能是从输入的整数中,
统计大于零的整数个数和小于零的整数个数。
用输
入0来结束输入,用i,j来放统计数,请填空完成程序。 void mai n() { printf( scanf( while (
int
n ,i=0,j=0;
input a in teger,0 for end\\n %c”&n);
n 或 n!=0 ) { if(n >0) i=
else j=j+1; } printf(
'”;
i+1 ;
i=M,j=M\\n ”,i,j);
}
3.编程计算1+ 3+ 5+
+ 101的值
精品文档
#i nclude
for (i = 1;
i<=101 sum = sum + i;
prin tf(\
;
i++
)
4. 编程计算1 + 3+ 5…+ 99的值
main () { int i, sum = 0;
i=1; while (
i<100
)
{ sum = sum + i;
i++
prin tf(\}
5. 从键盘输入一个字符,判断它是否是英文字母。 #i nclude
printf(\c=getchar();
if(c>= A ' &&c<= Z' || c>= a '&&c<= else prin tf(\}
6. 下面程序的功能是在 a数组中查找与x值相同的元素所在位置,请填空。
#i nclude
input 10 integers
for(i=0;i<10;i++)
scanf( ?,&a[i]);
printf(
input the number you want to find x
scanf( %d: &x );
for(i=0;i<10;i++)
:\
: ”); ; }
z°)
printf(\
精品文档
if( x==a[i]
break;
if(
i<10 printf(
else printf( }
)
)
fhe pos of x is : %d\\n”);
“an not find x ! \\n ”
7?程序读入20个整数,统计非负数个数,并计算非负数之和。 #i nclude
{ int i, a[20], s, count; s=co un t=0; for(i=0; i<20 ; i++) sca nf(
%(”& a[i]);
for(i=0; i<20; i++) { if( a[i]<0 ) continue ;
s+=a[i] ; coun t++; }
printf( s=%d\\t coun t=%d\\n ”s, count ”; }
8.输入一个正整数n (1
int i, i ndex, k, n, temp; ___________ / printf( printf(
En ter n:\
En ter %d in tegers: \
定义1个数组a,它有10个整型元素*/
for(i = 0; i < n; i++) scanf(\for(k = 0; k < n-1; k++){ /* in dex = k;
for( _____________ ) __________________ if(
) in dex = i; ______
对 n 个数排序 */
精品文档
}
prin tf(\for(i = 0; i < n; i++) return 0;}
/*
输出n个数组元素的值*/
四、程序改错
一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执 行结果。 1 .求 1
2 3 4
n
mai n() { long int sum; int n,i=1; scan f(\printf(
“n ”);
while(i< n) { sum=sum*i; i++;
}
prin tf(\}
sum应初始化即加入sum=1 第四行改为:scanf( ?,&n); 第六行改为:while(i<=n)
第十行改为:prin tf(\
2 .求一个数组中最大值及其下标。
mai n() { int max,j,m; int a[5];
for(j=1;j<=5;j++) scanf( %d',a); max=a[0]; for(j=1;j<=5;j++) if(max>a[j]) { max=a[j]; m=j; }
printf( 下标:%d\\n 最大值:%d\, j, max) }
第四行改为:for(j=0;j<5;j++) 第五行改为:scanf( %d:&a[j]);