通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
不能作为C语言函数名的是()。
Break
short
Int
data_1
第2题
若int a=5, b; 表达式()计算后变量b的值等于2。
b=6-(a--)
b=a%2
b=a>3?a:2
b=a/2
第3题
条件表达式()可以判断y是否为小写字母。
'a'<=y && y<='z'
"a"<=y<="z"
'a'<=y<='z'
"a"<=y && y<="z"
第4题
下列数组定义错误的是()。
int Score[3];
int Score[3]={1};
int n=3, Score[n];
int Score[]={1, 2, 3};
第5题
下列函数说明正确的是()。
int big(int x; int y)
int big(int x; int y);
int big(int x, int y);
int big(int x, y)
第6题
若int m=2, n=1; m=++n; 则m、n的值为()。
1、2
2、2
2、1
不确定
第7题
若int x=0x11, y=012; 则printf("%d %d", x, y);输出()。
11 12
12 11
9 10
17 10
第8题
printf("%d,%d", sizeof("xy\b"), strlen("xy\b"));的输出结果是()。
4,3
4,4
3,4
3,3
第9题
若char a[20]="world", *pa=a; 则不能代表字符d的表达式是()。
*(pa+4)
a[4]
pa+4
pa [4]
第10题
若定义struct x { int xx;} xxx;则下列表达式中能正确引用成员xx的是()。
x.xx
Xx
xxx->xx
xxx.xx
第11题
阅读程序,写出程序运行结果。
#include <stdio.h> void main( void ) { int i=25; do if( !(i%5) ) printf("%3d",i); while(--i>15); }
第12题
#include <stdio.h> void main( void ) { char str[10]= "abcde", tmp; int i, j; for(i=0, j=4; i<j; ++i, --j) { tmp=str[j]; str[j]=str[i]; str[i]=tmp; } printf("%s\n", str); }
第13题
#include <stdio.h> void swap(int *x, int *y) { int *t; t=x; x=y; y=t; } void main(void) { int x=12, y=63; swap(&x, &y); printf("%d,%d", x, y); }
第14题
#include <stdio.h> void main(void) { int a[]={12,30,15,57,69},*pa=&a[3]; while (*pa!=30) printf("%d,", *(--pa)); }
第15题
下列程序从键盘输入一个一元二次方程ax2+bx+c=0的三个系数a、b、c,计算并打印出方程的解。请仔细阅读他的程序,纠正程序中的错误。
#include <stdio.h> #include <math.h> void main( void ) { double a, b, c, deta, deta2, root1, root2; printf("请输入一元二次方程的三个系数a, b, c:"); /*****ERROR*****/ scanf("%d,%d,%d", &a, &b, &c ); deta = b * b - 4 * a * c; if(deta>=0) { deta2 = sqrt( deta ); /*****ERROR*****/ root1 = ( - b + deta2 ) / 2 * a, root2 = ( - b - deta2 ) / 2 * a; printf("Root1= %lf Root2=%lf\n", root1, root2 ); } }
第16题
下列程序调用函数sum计算下列级数之和:
S=1+x+x2/2!+x3/3!+........+xn/n!
请仔细阅读程序,纠正程序中的错误。
#include <stdio.h> double sum( float x, int n ) { int i; /*****ERROR*****/ float a, b, s; for( i=1; i<=n; i++) { a=a*x; b=b*i; s=s+a/b; } return s; } void main( void ) { /*****ERROR*****/ float x, c, n; scanf("%f,%d", &x, &n); c=sum(x, n); printf("级数之和为 %f\n", c); }
第17题
下列程序逆序打印所输入正整数的各位数字,例如输入134,程序输出4,3,1,而输入125538,程序则输出8,3,5,5,2,1。请仔细阅读程序,纠正程序中的错误。
#include <stdio.h> void main( void ) { unsigned int num; unsigned short digit[10], i, j; printf("请输入一个正整数:"); scanf("%u", &num); /*****ERROR*****/ for (i=0; i<5; i++) { digit[i] = num % 10; num /= 10; } printf("颠倒的各位数字是:"); /*****ERROR*****/ for (j=0; j<5; j++) printf("%2u,", digit[j]); }
第18题
下列程序查找输入8个整数中的最小数。请仔细阅读他的程序,指出并纠正程序中的错误。
#include <stdio.h> void main(void ) { int a[8], i, j; for(i=0; i<8; i++) /******ERROR******/ scanf("%d", a[i]); j=0; for(i=0; i<8; i++) /******ERROR******/ if(j>a[i]) j=i; printf("Min is %d at %d.\n", a[j], j+1); }
第19题
下列程序使用指针编程逆序打印输入的10个整数。请仔细阅读程序,纠正程序中的错误。
#include <stdio.h> #define SIZE 10 void main(void) { int a[SIZE], i, j, tmp; for(i=0; i<SIZE; i++) /******ERROR******/ scanf("%d", &a); for(i--; i>=0; i--) /******ERROR******/ printf("%d ", a); }
第20题
下列函数fun判断自然数n是否是素数。
__①__ fun(unsigned int __②__) { __③__ for(i= __④__ ; i<n; i++) if( __⑤__ ) return 0; //not a prime return n; // is a prime }
第21题
下列程序检查所输入的字符串是否为回文,若是回文则输出“Yes”,否则输出“No”。
#include <stdio.h> __⑥__ void main( void ) { char str [80], i=0, j; scanf("%s", str); j= __⑦__ -1; while(i<j) { if(str[i] __⑧__ str[j]) __⑨__ ; i++, j--; } if(i __⑩__ j) printf("Yes\n"); else printf("No\n"); }
第22题
编程输入6个整数,统计其中奇数的平均值,打印输出。
输入示范:11 33 56 75 86 29
输出示范:37.000
#include <stdio.h> void main( void ) { /***answer begin***/ /***answer end***/ }
参考答案:
int i, num, count=0, sum=0; //2 for(i=0;i<6;i++) //1 { //1 scanf("%d",&num); //1 if(num%2!=1) //1 continue; count++; //1 sum+=num; //1 } printf("%6.3f\n", (float) sum/count); //2
第23题
编写程序输入一个可能带空格的字符串,查找字符'z'出现的次数,输出;不存在,输出不存在的提示。
输入示范:xyz zoo zoom
输出示范:3
输入示范:this is x
输出示范:不存在字符z
char str[80], i, count=0; //2 gets(str); //1 for (i = 0; str[i] != 0; i++) //2 if (str[i] == 'z') //1 count++; //1 if( count ) //1 printf("%d\n", count); //1 else printf("不存在字符z\n"); //1
选择题(1 - 10题,共计20分) 填空题(11 - 23题,共计80分)