设有说明int (*ptr)[M];其中标识符ptr是(C)。
A、M个指向整型变量的指针
B、具有M个指针元素的一维指针数组,每个元素都只能指向整型量
C、一个指向具有M个整型元素的一维数组的指针
D、指向M个整型变量的函数指针
若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(A)。
A、8
B、7
C、10
D、9
若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)。
A、6
B、-3
C、-12
D、9
当调用函数时,实参是一个数组名,则向函数传送的是(B)。
A、数组每一个元素的地址
B、数组的首地址
C、数组每个元素中的值
D、数组的长度
以下叙述不正确的是(B)。
A、C程序的基本组成单位是函数
B、在C程序中,注释说明只能位于一条语句的后面
C、一个C源程序必须包含一个main函数
D、一个C源程序可由一个或多个函数组成
对于基本类型相同的两个指针变量之间,不能进行的运算是(A)。
A、+
B、<
C、=
D、-
fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式
必须是(D)。
A、答案B和C都正确
B、只写
C、追加
D、读或读写
以下叙述正确的是(B)。
A、do-while语句构成的循环不能用其它语句构成的循环来代替.
B、用do-while语句构成的循环,在while后的表达式为零时结束循环
C、用do-while语句构成的循环,在while后的表达式为非零时结束循环.
D、do-while语句构成的循环只能用break语句退出.
C语言程序中必须有的函数是(C)
A、#include "stdio.h"
B、#include C、main D、printf 以下不正确的说法是:C语言规定(B)。 A、实参可以为任何类型 B、形参可以是常量,变量或表达式 C、实参可以是常量,变量或表达式 D、形参应与其对应的实参类型匹配一致 已知int k=67; 则表达式k/10的值为;C A、6.70 B、6.7 C、6 D、7 static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'}; 说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是(B)。 A、a[10] B、a[0] C、a[1] D、a[-1] 在C语言程序中(A)。 A、函数的定义不可以嵌套,但函数的调用可以嵌套 B、函数的定义和函数调用不可以嵌套 C、函数的定义和函数调用均可以嵌套 D、函数的定义可以嵌套,但函数的调用不可以嵌套 以下不能正确进行字符串赋初值的语句是(B)。 A、char str[]="good!"; B、char str[5]="good!"; C、char *str="good!"; D、char str[5]={'g','o','o','d',0}; 若有以下程序: main() { int k=2,i=2,m; m=(k+=i*=k); printf("%d,%d\\n",m,i); } 执行后的输出结果是___A___。 A、6,4 B、7,4 C、8,3 D、8,6 在执行fopen函数时,ferror函数的初值是(D)。 A、TRUE B、1 C、-1 D、0 下列定义不正确的是(A)。 A、int max(x,y); intx,y; { } B、static char c; C、#define S3 45 D、#define PI 3.141592 下面选择中正确的赋值语句是(设char a[5],*p=a;)(C)。 A、*a="abcd"; B、a="abcd"; C、p="abcd"; D、*p="abcd"; 下面不正确的字符串常量是(B)。 A、"0" B、'abc' C、"12'12" D、" " C语言中,char类型数据占(D)。 A、2个字节 B、8个字节 C、4个字节 D、1个字节 设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为(B)。 A、144 B、0 C、12 D、132 以下程序的执行结果是___A____. main() { intnum = 0; while( num<= 2 ) { num++; printf( "%d,",num ); } } A、1,2,3, B、1,2,3,4, C、1,2, D、0,1,2 下列四个选项中,均是C语言关键字的选项是(B)。 A、if struct type B、switch typedef continue C、signed union scanf D、auto enum include 对循环语句:for(表达式1;表达式2;表达式3)语句,以下叙述正确的是(D ). A、for语句只能用于循环次数已经确定的情况 B、for语句中的三个表达式一个都不能少 C、for语句中的循环体至少要被执行一次 D、for语句中的循环体可以是一个复合语句 以下错误的描述是:函数调用可以(A)。 A、做为一个函数的形参 B、出现在执行语句中 C、做为一个函数的实参 D、出现在一个表达式中 以下程序的输出结果是D #define FMT “%d,” main() { int b[][4] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23}; printf(FMT, *(*(b+1)+1)); printfFMT, b[2][2]); } A、1,11, B、1,11 C、11,21 D、11,21, 下列定义不正确的是(C)。 A、static char c; B、#define S 345 C、int max(x,y); intx,y; { } D、#define PI 3.141592 下列关于C语言数据文件的叙述中正确的是(D)。 A、文件由ASCII码字符序列组成,C语言只能读写文本文件 B、文件由二进制数据序列组成,C语言只能读写二进制文件 C、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是A scanf(“%f %f %f”, &a, &b, &c); A、 B、 C、 D、 设j和k都是int类型,则下面的for循环语句(D)。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A、是无限循环 B、最多执行9次 C、循环体一次也不执行 D、最多执行10次 char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。N while和do…while循环不论什么条件下它们的结果都是相同的.N 若有定义:int i=3,j;执行j=i++;后,i,j的值都为4。N 关系运算符<= 与 == 的优先级相同。N 若有定义和语句: int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21.Y 十进制数15的二进制数是1111.Y C语言的函数可以嵌套定义.N 在Turbo C中,整型数据在内存中占2个字节。N 通过return语句,函数可以带回一个或一个以上的返回值。N #define 和printf 都不是C语句。Y /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:输入2个学生3门课的成绩,计算学生成绩平均分, 课程平均分和最高分. 例如:输入2名学生3门课的成绩分别为92,87,68,56, 92,84 则 学生1平均分:82.33 学生2平均分:77.33 课程1平均分:74.00 课程2平均分:.50 课程3平均分:76.00 最高分为:92 ------------------------------------------------*/ #include void VV(); /*定义全局变量*/ /*学生成绩平均分*/ float StuAgv[2]; /*课程平均分*/ float CouAgv[3]; /*所有学生的所有课程最高分*/ float Max=0; /*说明:需要在下面函数中把题干要求中的结果赋值到上面定义一变量中*/ void fun(float score[2][3]) { /********** Begin **********/ /********** End ***********/ } void main() { inti,j; float score[2][3]; printf("输入学生的成绩:"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%f",&score[i][j]); printf("\\n输出学生的成绩:"); for(i=0;i<2;i++) { for(j=0;j<3;j++) printf("%.2f ",score[i][j]); printf("\\n"); } fun (score); for(i=0;i<2;i++) printf("第%d个学生的平均成绩是:%0.2f\\n",i+1,StuAgv[i]); for(j=0;j<3;j++) printf("第%d门课的平均成绩是:%0.2f\\n",j+1,CouAgv[j]); printf("所有分数中的最高分为:%.2f\\n",Max); VV(); } void VV() { FILE *IN,*OUT; floatiIN[2][3]; inti,j; IN=fopen("in.dat if(IN==NULL) { printf("Please Verify The CurrerntDir..it May Be Changed"); } OUT=fopen("out.dat if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } for(i=0;i<2;i++) for(j=0;j<3;j++) fscanf(IN,"%f",&iIN[i][j]); fun(iIN); for(i=0;i<2;i++) fprintf(OUT,"%.2f\\n",StuAgv[i]); for(j=0;j<3;j++) fprintf(OUT,"%.2f\\n",CouAgv[j]); fprintf(OUT,"%.2f\\n",Max); fclose(IN); fclose(OUT); return ; } 【参考代码】 inti,j; float sum; /*计算第i个学生平均分*/ for(i=0;i<2;i++) { sum=0; for(j=0;j<3;j++) sum=sum+score[i][j]; StuAgv[i]=sum/3; } /*计算第j门课的平均分*/ for(j=0;j<3;j++) { sum=0; for(i=0;i<2;i++) sum=sum+ score [i][j]; CouAgv[j]=sum/2; } Max=score[0][0]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(Max<=score[i][j]) Max=score[i][j]; return ; =============== /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:对长度为7个字符的字符串,除首、尾字符外,将其 余5个字符按降序排列。 例如:原来的字符串为CEAedca,排序后输出为CedcEAa。 ------------------------------------------------*/ #include #include #include void bky(); void fun(char *s,intnum) { /**********Begin**********/ /********** End **********/ } main() { char s[10]; printf("输入7个字符的字符串:"); gets(s); fun(s,7); printf("\\n%s",s); bky(); } voidbky() { int i; char a[100]; FILE *rf, *wf ; rf = fopen("in.dat", "r") ; wf = fopen("out.dat", "w") ; for(i=0;i<3;i++) { fscanf(rf, "%s", &a); fun(a,7); fprintf(wf, "%s", a); fprintf(wf, "\\n"); } fclose(rf); fclose(wf); } 【参考代码】 inti,j; char t; for(i=1;i =============== /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:计算正整数num的各位上的数字之积。 例如:输入252,则输出应该是20。 ------------------------------------------------------*/ #include long fun (long num) { /**********ERROR**********/ long k; do { k*=num%10; /**********ERROR**********/ num\\=10; }while (num); return k; } main() { long n; printf("\\nPlease enter a number:"); /**********ERROR**********/ scanf("%ld", n); /**********ERROR**********/ printf("\\n%ld\\n",fun(long n)); } 【改错1】 错误 【学生答案】 long k; 【参】 long k=1; ============================================================ 【改错2】 错误 【学生答案】 num\\=10; 【参】 num/=10; num=num/10; ============================================================ 【改错3】 错误 【学生答案】 scanf("%ld", n); 【参】 scanf("%ld",&n); ============================================================ 【改错4】 错误 【学生答案】 printf("\\n%ld\\n",fun(long n)); 【参】 printf("\\n%ld\\n",fun(n)); /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:判断字符ch是否与str所指串中的某个字符相同;若相同, 什么也不做,若不同,则将其插在串的最后。 ------------------------------------------------------*/ #include #include #include /**********ERROR**********/ void fun(char str, char ch ) { while ( *str&& *str != ch ) str++; /**********ERROR**********/ if ( *str == ch ) { str [ 0 ] = ch; /**********ERROR**********/ str[1] = '0'; } } main( ) { char s[81], c ; printf( "\\nPlease enter a string:\\n" ); gets ( s ); printf ("\\n Please enter the character to search : " ); c = getchar(); fun(s, c) ; printf( "\\nThe result is %s\\n", s); } 【改错1】 错误 【学生答案】 void fun(char str, char ch ) 【参】 void fun(char *str, char ch ) ============================================================ 【改错2】 错误 【学生答案】 if ( *str == ch ) 【参】 if ( *str == '\\0' ) ============================================================ 【改错3】 错误 【学生答案】 str[1] = '0'; 【参】 str[1] = '\\0'; /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算一元二次方程的根。 -------------------------------------------------------*/ #include /**********FILL**********/ #include _____ main() { float a,b,c,disc,x1,x2,realpart,imagpart; scanf("%f%f%f",&a,&b,&c); printf("the equation"); /**********FILL**********/ if(_____<=1e-6) printf("is not quadratic\\n"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%-8.4f\\n",-b/(2*a)); /**********FILL**********/ else if(_____) { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %.4f\\n",x1,x2); } else { realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\\n"); printf("%8.4f=%.4fi\\n",realpart,imagpart); printf("%8.4f-%.4fi\\n",realpart,imagpart); } } 【空1】 错误 【学生答案】 #include _____ 【参】 ============================================================ 【空2】 错误 【学生答案】 if(_____<=1e-6) 【参】 fabs(a) ============================================================ 【空3】 错误 【学生答案】 else if(_____) 【参】 fabs(disc) > 1e-6 1e-6 【程序填空】 --------------------------------------------------------- 功能:调用函数fun计算m=1-2+3-4+……+9-10,并输出结果。 -------------------------------------------------------*/ #include int fun( int n) { int m=0,f=1,i; /***********FILL***********/ for(i=1;_____;i++) { m+=i*f; /***********FILL***********/ _____; } /***********FILL***********/ return _____; } main() { printf("m=%d\\n", fun(10)); } 【空1】 错误 【学生答案】 for(i=1;_____;i++) 【参】 i<=n n>=i ============================================================ 【空2】 错误 【学生答案】 _____; 【参】 f= -f f= -1*f f=f*(-1) f=(-1)*f ============================================================ 【空3】 错误 【学生答案】 return _____; 【参】 M{ t=s[i];s[i]=s[j];s[j]=t;}