int main(){ int x[3][3]={7,2,1,3,4,8,9,2,6}; int s,*p; p=_______; s=*p*_______;
printf(\"product=%d\ return(0); }
二、选择题
11、下面4个选项中,是不合法的用户标识符的选项是( )。 A.A B.float C.b-a D._123 P_01 a0 goto temp
Do A int INT
12、下列4组选项中,不是C语言关键字的选项是。( ) A.define B.getc C.include D.while
IF char scanf go
Type printf case pow 13、若有以下定义,则正确的赋值语句是( )。 int a,b;float x;
A.a=1,b=2, B.b++; C.a=b=5 D.b=int(x);
14、有定义语句int a,b;,若要通过语句scanf(\"%d,%d”,&a,&B.;使变量a得到数值6,变量b得到数值5,下面输入形式中错误的是( )。(注:口代表空格)
A.6,5<回车> B.6,囗囗5<回车> C.65<回车> D.6,<回车>5<回车> 15、一个C语言程序由( )。
A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成
16、下面程序段(每行代码前面的数字表示行号)( )。
1 int a[3]={3*0}; 2 int i;
3 for(i=0;i<3;i++)scanf(\"%d\",&a[i]); 4 for(i=1;i<3;i++)a[o]=a[o]+a[i]; 5 printf(\"%d\\n\",a[o]);
A.第1行有错误 B.第5行有错误 C.第3行有错误 D.没有错误 17、以下正确的描述是( )。
A.continue语句的作用是结束整个循环的执行 B.只能在循环体内和switch语句体内使用break语句 C.在循环体内使用break 语句或continue语句的作用相同 D.从多层循环嵌套中退出时,只能使用goto语句
18、若用数组名作为函数调用的实参,则传递给形参的是( ) A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数
19、若有以下定义和语句,则对a数组元素地址的正确引用为( )。 int a[2][3],(*p)[3]; p=a;
A.*(p+2) B.p[2] C.p[1]+1 D.(p+1)+2
20、已有定义int(*p)();指针p可以( )。 A.代表函数的返回值 B.指向函数的入口地址 C.表示函数的类型 D.表示函数返回值的类型
21、若变量都已正确定义,则以下程序段的输出是( )。 a=10;b=50;c=30; if(a>B.a=b,b=c; c=a;
printf(\"a=%db=%dc=%d\\n\".a,b,C.;
A.a=10 b=30 c=10 B.a=10 b=50 c=10 C.a=50 b=30 c=10 D.a=50 b=30 c=50
22、下面程序的运行结果是( )。
#include int main(){int k=0;charc='A'; do
{ switch(c++)
{case'A':k++;break; case'B':k--;
case'C':k+=2;break; case'D':k=k%2;continue; case'E':k=k*10;break; default: k=k/3; } k++;
}while(c<'G'); printf(\"k=%d\\n\",k); return 0; }
A.k()=3 B.k=4 C.k=2 D.k=0
23、下面程序的功能是计算1~10之间的奇数之和及偶数之和。请选择填空( )。
#include int main(){int a=0,b,c=0,i;
for(i=0;i<=10;i+=2) {a+=i; b=i+1; c+=b;
printf(\"The sum of even=%d\\n\",A.; printf(\"The sun of odd=%d\\n\",【】): return 0;
}
A.c-10 B.c C.c-11 D.c-b 24、以下程序的运行结果是( )。
#include int fun(int a,int B. {if(a>B.return(a+B.; else return(a-B.; int main(){int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(\"%d\\n\",r);
return(0); }
A.-16 B.-17 C.17 D.16
25、下面程序的功能是将字符串s中所有的字符c删除。请选择填空( )。
#include int main() {char s[80];inti,j; gets(s);for(i=j=0;s[i]!= '\\o';i++) if(s[i]!='c)[ ]; s[j]='\\o'; puts(s); return 0; }
A)s[j++]=s[i] B)s[++j]=s[i] C)s[j]=s[];j++ D)s[j]=s[i]三、读程序填空
26、以下程序的输出结果为_______。#include int main() {short i; i=一4;printf(\"\\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\\n\",i,i,i,i); return 0;
}
27、以下程序的输出结果是_______。
#include int main() {int a=252;printf(\"a=%oa=%#o\\n\",a,a); printf(\"a=%xa=%#x\\n\",a,a); return 0; }
28、为使以下程序顺利运行,请在_______中填写正确的内容;当输入的数值为57时,该程序的运行结果是_______。
# include _______ int main() { double x,y;scanf(\"%11% lf\ printf(\"% If\\n\ return(O); }
double max(double a, double b)
{return(a>b?b-a:a-b):}
29、以下函数fun的功能是:统计用数字0~9可以组成多少个位值相同的3位偶数。请填空。
#include int fun() {int n=0,i,j,k; for(i=1;i<=9;i++)for(k=0;k<=8;k=_______) for(j=0;j<=9;j++) if(_______)n+十; return n; int main()
{int n; n=fun();
printf(\"n=%d\\n\",n); return(0); }
30、下面程序的功能是生成并打印某数列的前20项,该数列第1、2项分别为0和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20个数存放在一维数组x中,并按每行4项的形式输出。请填空。
# include int main(){ int x[21],i=3,j: x[1]=0;x[2]=1; do {x=[1]: x[i+1]=[2]; i=[3]:
}while(i<=20); for(i=1;i<=20;i++) { printf(\"%5d\
if(i%4==0) printf(\"\\n\"); } return 0; }
31、下面程序的功能是:根据表4-3中给定的函数关系,对输入的每个x值计算出相应的y值。请填空。
函数关系
x 2<𝑥≤10 −1<𝑥≤2 𝑥≤−1 # include int main() { intx,y;y x(x+2) 2x x-1 scanf(\"%d\ if (_______)y=x*(x+2); else if (_______) y=2*x; else if(x<=-1) y=x-1; else(_______) ;
if(y!=-1) printf(\"%d\ else printf(\"error\"); return 0; }
32、以下程序的功能是根据公式e=1+1!+2!+3!…,求e的近似值,精度要求为10-6。请填空。
#include int main(){int i;double e,new; _________;new=1.0; for(i=1;_______;i++) {new/=(double)i;e+=new;} printf(\"e=%f\\n\",e); return 0; }
33、下面程序的运行结果是_______。
1
1
1
#include int main(){char a[80],b[80],*p=\"aAbcdDefgGH\"; Int i=0,j=0; while(*p!='\\0') {if(*p>='a'&&*p<='z') {a[i]=*p;i++;} else{b[j]=*p;j++;} p++; }
a[i]=b[j]= '\\o'; puts(a); puts(b); return(0); }
四、编程题
34、定义一个带参数的宏,用来判断一个字符是否为字母。编写主函数,从键盘输入一个字符,调用上述宏输出判断结果。
35、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。
参
一、填空题
1、【1】.c【2】.obj【3】.exe 2、i<=x
3、【1】a[0]=2a[1]=1
【2】因实参是地址,已对指定地址中的内容进行了交换。 4、【1】取地址【2】按位与 5、0130或88或0x58
6、【1】单精度型(或:float型)【2】双精度型(或:double型) 7、【1】b【2】b【3】b 8、2400
9、4
10、【1】&x[0][0]【2】(*(p+4))*(*(p+8))
二、选择题
11、C 12、A 13、B 14、C
15、B
16、A
17、B 18、A 19、C 20、B 21、B 22、B 23、C 24、B 25、A
三、读程序填空
26、i:dec=-4,oct=177774,hex=fffc,unsigned=65532 27、a=374囗囗a=0374 a=fc囗囗a=0xfc
(注:答案中的囗代表空格)
28、【1】double max(double,double);【2】-2.000000 29、【1】k+2【2】j==i&&i==k 30、【1】x[i-1]+x[i-2]
【2】fabs((double)(x[i-1]-x[i])) 【3】i+2
31、【1】x>28.8.x<=10【2】x>-18.8.x<=2【3】y=-1 32、【1】e=1.0【2】new>=1e-6
33、abcdefg ADGH
四、编程题
34、/*判断是否是字母*/
#include #define ISALPHA(ch)((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z '))?1:0 int main() {char c;
printf(\"Enter a letter:\"); scanf(\"%c”,8c);
if(ISAL.PHA(c))printf(\"%c is an alpha.\\n\",c); else printf(\"%cis not an alpha.\\n\",c); return 0; }
35、#include int main(){struct study int mid; int end; int average;
}math;
scanf(\"%d%d\",&math.mid,&.math.end); math.average=(math.mid+math.end)/2; printf(\"average=%d\\n\",math.average); return 0; }