多选题\n 执行下面程序段的输出结果是( )。char p[]={'a', 'b', 'c'}, q[]="abc"; printf("%d %d\n", sizeof(p),sizeof(q)); A. 4 4 B. 3 3 C. 3 4 D. 4 3 \n多选题\n 执行printf("%d\n",strlen("abcd\n\102\x4A\\"));的输出结果是( )。 A. 8 B. 10 C. 14 D. 16 \n多选题\n 若有定义char s[10];,要求从终端给s输入5个字符,下面错误的语句是( )。 A. gets(&s[0]); B. scanf("%s",s+1); C. gets(s); D. scanf("%s",s[1]); \n多选题\n 假定int类型占用4字节,若有定义int x[10]={0,2,4};,则数组x在内存中所占的字节数是( )。 A. 3 B. 10 C. 12 D. 40 \n多选题\n 下面数组定义语句中,正确的是( )。 A. int a[2][]={1,2,3,4,5,6}; B. char a[2][3]='a','b'; C. int a[][3]= {1,2,3,4,5,6}; D. static int a[][]={{1,2,3},{4,5,6; \n多选题\n 若有定义float y[5]={1,2,3};,则下面描述正确的是( )。 A. y并不代表数组的元素 B. 定义此数组时不指定数组的长度,定义效果相同 C. 数组含有3个元素 D. y[3]的值为3 \n多选题\n \n \n 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。\n \n\n \n A. 整型常量\n \n \n B. 整型表达式\n \n \n C. 整型常量或整型表达式\n \n \n D. 任何类型的表达式\n \n\n多选题\n 当接受用户输入的含空格字符串时,应使用( )函数。 A. scanf() B. gets() C. getchar() D. getc() \n多选题\n 若有定义int a[][3]={1,2,3,4,5,6,7};,则第一维数组a的大小是( )。 A. 2 B. 3 C. 4 D. 无确定值 \n简答题\n 下面程序的功能是:从键盘输入若干学生的成绩(不超过1000个),统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。 #include int main(void) { float x[1000],sum=0.0,ave,a; int n=0,i; printf("Enter mark:\n"); scanf("%f",&a); while(a>=0.0&&n { sum = (1) ; x[n] = (2) ; n++; scanf("%f",&a); } ave=sum/n ; printf("Output: "); printf("ave=%.1f\n",ave); for(i=0;i if( (3) ) printf("under ave:%.1f\n",x[i]); return 0; }\n多选题\n 若有定义char c[8]= "BASIC"; int j;,则下面的输出函数调用中错误的是( )。 A. printf("%s",c); B. for(j=0;j puts(c); D. for(j=0;j<8;j++) puts(c[j]); \n多选题\n 下面程序的输出结果是( )。 #include #include int main(void) { char p[20] = { 'a','b','c','d' }, q[] = "abc", r[] = "abcde"; strcat(p, r); strcpy(p + strlen(q), q); printf("%d\n", strlen(p)); return 0; } A. 9 B. 6 C. 11 D. 7 \n多选题\n 以下对一维整型数组a定义正确的语句是( )。 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]; \n多选题\n 若二维数组a有m列,则在a[i][j]前面的元素个数为( )。 A. j*m+i B. i*m+j C. i*m+j-1 D. i*m+j+1 \n多选题\n 若有定义int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;,则a数组元素值为4的表达式是( )。 A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] \n多选题\n 下面程序的输出结果是( )。 #include #include int main(void) { char arr[2][4]; strcpy(arr[0], "you"); strcpy(arr[1], "me"); arr[0][3] = '&'; printf("%s \n", arr); return 0; } A. you&me B. you C. me D. Err \n简答题\n 下面程序中的数组a中有10个整数,从数组a中的第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。 #include int main(void) { int a[10], b[10], i; for (i = 0; i scanf("%d", (1) ); for (i = 1; (2) ; i++) b[i] = a[i] - a[i - 1]; for (i = 1; i { printf("%3d", b[i]); if ( (3) ) printf("\n"); } return 0; }\n多选题\n 下面程序的输出结果是( )。 #include int main(void) { int s[12] = { 1,2,3,4,4,3,2,1,1,1,2,3 }, c[5] = { 0 }, i; for (i = 0; i c[s[i]]++; for (i = 1; i printf("%d ", c[i]); printf("\n"); return 0; } A. 1 2 3 4 B. 2 3 4 4 C. 4 3 3 2 D. 1 1 2 3 \n多选题\n 若有定义char a[10]; int j;,则下面输入函数调用中错误的是( )。 A. scanf("%s",a); B. for(j=0;j gets(a); D. for(j=0;j<9;j++) scanf("%c",&a[j]); \n多选题\n 若有定义int aa[8],则以下表达式中不能代表数组元素aa[1]地址的是( )。 A. &aa[0]+1 B. &aa[1] C. &aa[0]++ D. aa+1 \n