习题一基础知识、数据类型、运算符与表达式
一、选择题
1、以下选项中正确的整型常量是( B )
A)12. B)-20 C)1,000 D)4 5 6
2、以下选项中正确的实型常量是( D )
A)0 B)3.1415 C)0.329*102D).871
3、以下选项中不正确的实型常量是( B )
A)2.607E-1 B)0.8103e C)-77.77 D)456e-2
4、以下选项中不合法的用户标识符是( A )
A)abc.c B)file C)Main D)PRINTF
5、以下选项中不合法的用户标识符是( C )
A)_123 B)printf C)A$ D)Dim
6、C语言中运算对象必需是整型的运算符是( A )
A)% B)/ C)!D)**
7、可在C程序中用作用户标识符的一组标识符是( B )
A)void define WORD
B)as_b3 _123 If
C)For -abc case
D)2c DO SIG
8、若变量已正确定义并赋值,符合C语言语法的表达式是( B )
A)a=a+7;B)a=7+b+c,a++ C)int(12.3%4)D)a=a+7=c+b
9、以下叙述中正确的是( A )
A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。
B)在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。
C)执行表达式a = b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。
D)有a=3,b=5。当执行了表达式a = b,b = a之后,已使a中的值为5,b中的值为3。
10、以下叙述中正确的是( C )
A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表达。
B)C程序由主函数组成。
C)C程序由函数组成。
D)C程序由函数和过程组成。
*11、TURBO C中int类型变量所占字节数是( B )
A)1 B)2 C)3 D)4
12、不合法的八进制数是( B )
A)0 B)028 C)077 D)01
13、不合法的十六进制数是( A )
A)oxff B)0Xabc C)0x11 D)0x19
14、C语言中的简单数据类型有( B )
A)整数、实型、逻辑型B)整型、实型、字符型
C)整数、字符型、逻辑型D)整型、实型、逻辑型、字符型
15、C语言中,字符型数据在微机内存中的存储形式是( D )
A)反码B)补码C)EBCDIC码D)ASCII码
16、C语言中不合法的字符常量是( D )
A)‘\xff ’B)‘\65’C)‘&’D)‘\028’
17、C语言中不合法的字符串常量是( B )
A)“\121”B)‘y=’C)“\n\n”D)“ABCD\x6d”
18、判断char型变量c是否为大写字母的最简单且正确的表达式是( D )
A) ‘A’<=c<=‘Z’B) (c>=‘A’)&(c<=‘Z’)
B) (‘A’<=c)AND(‘Z’>=c)D) (c>=‘A’)&&(c<=‘Z’)
二、填空题
1、在Microsoft Visual C 6.0环境中运行一个C程序时,所运行的程序的后缀是.EXE 。
2、C语言源程序文件的后缀是.C或.CPP ,经过编译后,生成文件的后缀是 .OBJ,经过连
接后,生成文件的后缀是 .EXE。
3、结构化程序由顺序,选择,循环三种基本结构组成。
4、若k为int整型变量且赋值11。请写出运算k++后表达式的值11和变量的值 12 。
5、若x为double型变量,请写出运算x = 3.2,++x后表达式的值4.2 和变量的值4.2 。
6、函数体由符号{ 开始,用符号 } 结束。函数体的前面是声明部分,其后是执行部分。
7、C语言中的标识符可分为关键字,用户标识符和预定义标识符三类。
8、在C语言程序中,用关键字int 定义基本整型变量,用关键字 float 定义单精度实型变
量,用关键字double 定义双精度实型变量。
9、把a1,a2定义成单精度实型变量,并赋初值1的定义语句是float a1=1,a2=1;。
10、C程序中定义的变量,代表内存中的一个存储空间。
11、表达式3.5+1/2的计算结果是 3.5 。
12、表达式s=10应当读做把10赋值给s 。
13、计算机中内存储器的最小存储单位称位,其中能容纳的数是0或1 。
14、通常一个字节包含 8 个二进制位。在一个字节中能存放的最大(十进制)整数是255 ,
它的二进制数的形式是11111111 ,最小(十进制)整数是0,它的二进制数的形式是00000000。
15、计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是65535,最
小(十进制)整数是0,它的二进制数的形式是 16个0。
16、在C语言中整数可用十进制数,八进制数和十六进制数三种数制表示。
17、EOF的十进是–1 。
18、C语言中,字符占内存 1 个字节。
习题二顺序结构
一、选择题
1、若a,b,c,d都是int类型变量且初值为0,以下选项不正确的赋值语句是( C )
A)a=b=c=100; B)a=d++; C)c+b; D)d=(c=22)-(b++);
2、以下选项中不是C语句的是(C )
A),int I; I++; printf(“%d\n”,I); -B);
C)a=5 , c=10 D){ ; }
3、以下合法的C语言赋值语句(A )
A)a=b=58; B)k=int (a+b); C)a=58,b=58 D)--I ;
4、以下程序的输出结果是(C )
A)0 B)1 C)3 D)不确定的值
Main()
{
int x=10,y=3;
printf(“%d\n”,y=x/y);
}
5、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句(D )
A)read(a,b,c); B)scanf(%d%d%d“,a,b,c);
C)scanf(“%D%D%D”,&a,%b,%c) D)scanf(“%d%d%d”,&a,&b,&c);
6、若变量已正确说明float类型,要通过以下赋值语句给a赋予10,b赋予22,c赋予33,以下不正确的输入形式是( B )
A)10 B)10.0,22.0,30 C)10.0 D)10 22
22 22.0 30 33
33
scanf(“%f %f %f”,&a,&b,&c);
7、若变量已正确定义,要将a和b中的数据进行交换,下边不正确的语句组是(C )
A)a=a+b,b=a-b,a=a-b; B)t=a,a=b,b=t; C)a=t;t=b;b=a; D)t=b;b=a;a=t;
8、若变量已正确定义,以下程序段的输出结果是(D )
A)输出格式说明与输出项不匹配,输出无定值B)5.17
C)5.168 D)5.169
x=5.16894;
p rintf(“%f\n”, (int)(x*1000+0.5)/(float)1000);
9、若有以下程序段,c3中的值(A )
A)0 B)1/2 C)0.5 D)1
int c1=1,c2=2,c3;
c3=c1/c2;
10、当运行以下程序时,在键盘上从第一列开始输入9876543210
( C )
A)a=98,b=765,c=4321 B)a=10,b=432,c=8765
C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765.0,c=4321.0
main()
{
int a; float b,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“\na=%d,b=%f,c=%f\n”,a,b,c);
}
11、以下输出结果是(D)
A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d
main( )
{
int a=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);
}
12、若int类型占两个字节,则以下程序段的输出是(D )
A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535
int a=-1;
printf(“%d,%u\n”,a,a);
13、以下程序段的输出是(A)
A)*496 * B)* 496* C)*000496* D)输出格式不合法int x=496;
printf(“*%-06d*\n”,x);
14、以下程序段的输出是(C )
A)|3.1415| B)| 3.0| C)| 3| D)| 3.|
float a=3.1415;
printf(“|%6.0f|\n”,a);
15、以下程序段的输出是(C )
A)|2345.67800| B |12345.6780| C)|12345.67800| D)|12345.678| printf(“|%10.5f|\n”,12345.678);
16、以下程序段的输出是(C )
A)*0000057.66*B)* 57.66* C)*0000057.67* D)* 57.67* float a=57.666;
printf(“*%010.2f*\n”,a);
18、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是(B )
A)scanf(“%f”,c);B)scanf(“%8.4f”,&c)
C)scanf(“%6.2f”,&c);D)scanf(“%8”,&c);
283.1900
19、若变量已正确说明,要求用以下语句给a赋予12,给b赋予9.0,则正确的输入形式是(Δ代表空格)(C)
A)3.12ΔΔ9.0
C)a=3.12,b=9
Scanf(“a=%f,b=%f”,&a,&b);
二、填空题
1、若有以下定义,请写出以下程序段中输出语句执行后的输出结果。
(1)-200 2500(2)i=-200,j=2500(3)i=-200
int i= -200,j=2500; j=2500
printf(“(1) %d %d”,i,j);
printf(“(2) i=%d,j=%d\n”,i,j);
printf(“(3) i =%d\n j=%d\n”,i,j);
2、变量i,j,k已定义为int类型并有初值0,用以下语句进行输入时
scanf(“%d”,&i); scanf(“%d”,&j); scanf(“%d”,&k);
当执行第一个输入语句,从键盘输入:
12.3<CR>
则变量i,j,k的值分别是12 0 0。
3、复合语句在语法上被认为是一条语句。空语句的形式是;。
4、C语句的最后用;结束。
5、用以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式。
100 25.81
100 25.81 100
1.89234
1.89234 25.81
1.89234
int k; float a; double x;
scanf(“%d%f%f”&k,&a,&x);
printf(“k=%d,a=%f,x=%f\n”k,a,x)
6、以下程序段的输出结果是(x=127,x=ΔΔΔ127,x=ΔΔΔ177,x=ΔΔΔΔ7f,x=ΔΔΔ127 )
int x=0177;
printf(“x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);
7、以下程序段的输出结果是(x=127,x=127ΔΔΔ,x=$177ΔΔΔ,x=$000127,x=%06d )
int x=0177;
printf(“x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n”,x,x,x,x,x);
8、以下程序段的输出结果是(a=513.789215, a=ΔΔ513.79, a=ΔΔ513.78921500)
double a=513.789215;
printf(“a=%8.6f,a=%8.2f, a=14.8f\n”,a,a,a);
9、调用C语言对字符处理的库函数时,在#include命令行应包含的头文件是stdio.h 。
10、若输入字符A,在以下while语句执行后ch的值是0。
While(ch=getchar()==’A’);
11、若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是 ,请用
10A
20B
30C
40D
Scanf(“%d%c%d%c%d%c%d%c”,&w,&a,&x,&b,&y,&c,&z,&d);
12、若有以下说明和输入语句时,要求给c1、c2输入字符A和字符B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是 7.29 101.298AB
char c1,c2; float a1,a2;
scanf(“%f%f”,&a1,&a2); scanf(“%c%c”,&c1,&c2);
习题三选择结构
一、选择题
1、下列运算符中优先级最高的运算符是A
A)!B)% C)-= D)&&
2、下列运算符中优先级最低的运算符是A
A)|| B)!= C)<= D)+
3、为表示关系x>=y>=z,应使用的C语言表达式是A
A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)
C)(x>=y>=z) D)(x>=y)&(y>=z)
4、设a,b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是D
A)a&&b B)a<=b C)a||b+c&&b-c D)!((a
5、以下程序的输出结果是C
A)0 B)1 C)2 D)3
main()
{
int a=2,b= -1,c=2;
if(a
if(b<0) c=0;
else c+=1;
printf(“%d\n”,c);
}
6、以下程序的输出结果是A
A)1 B)2 C)3 D)4
main()
{ int w=4,x=3,y=2,z=1;
printf(“%d\n”,(w } 7、如执行以下程序时从键盘上输入3和4,则输出结果是B A)14 B)16 C)18 D)20 main() { int a,b,s; scanf(“%d%d”,&a,&b); s=a; if(a s*=s; printf(%d\n”,s); } 8、运行以下程序后,输出D A)#### B)&&&& C)####&&&& D)错误 main() { int k= -3; if(k<=0)printf(“****\n”) else printf(“&&&&\n”); } 二、填空题 1、C语言中用1表示逻辑“真”,用0 表示逻辑“假”。 2、C语言中的关系运算符按优先级别是< <= > >= ; == !=; 。 3、C语言中的逻辑运算符按优先级别是! ; &&; ||。 4、C语言中的关系运算符和逻辑运算符按优先级别是! ; < <= > >=; == !=; &&; || 。 5、C语言中的逻辑运算符! 的优先级别高于算术运算符。 6、将下列数学式改写成C语言的关系表达式或逻辑表达式A)a==b||a A)a=b或a 7、请写出以下程序的输出结果1 main() { int a=100; if (a>100) printf(“%d\n”,a>100); else printf(“%d\n”,a<=100); } 8、请写出与表达式等价的表达式A)x<=0 B)1 A)!(x>0) B)!0 9、当a=1,b=2,c=3,以下if语句执行后,a,b,c中的值分别是 3 2 2。 if(a>c) b=a;a=c;c=b; 习题四循环结构 一、选择题 1、以下程序段的输出结果是D A) 9 B)1 C)11 D)10 int k,j,s; for(k=2;k<6;k++,k++) { s=1; for (j=k;j<6;j++) s+=j; } printf(“%d\n”,s); 2、以下程序段的输出结果是C A) 12 B)15 C)20 D)25 int I,j,m=0; for(I=1;I<=15;I+=4) for(j=3;j<=19;j+=4) m++; printf(“%d\n”,m); 3、以下程序段的输出结果是B A) 10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 6 int n=10; while(n>7) { n--; printf(“%d\n”,n); } 4、以下程序段的输出结果是C A) 1 B)3 0 C)1 -2 D)死循环 int x=3; do , printf(“%3d”,x-=2); }while(!(--x)); 5、以下程序段的输出结果是C A) 15 B)14 C)不确定D)0 main() { int I,sum; for(I=1; I<6;I++)sum+=sum; print(“%d\n”,sum); } 6、以下程序段的输出结果是B A) 741 B)852 C)963 D)875421 main() { int y=10; for(;y>0;y--) if(y%3==0) , printf(“%d”,--y);continue; } } 7、若x是int型变量,以下程序段的输出结果是D A) **3 B)##3 C)##3 D)**3##4 ##4 **4 **4##5 **5 **5 ##5 for(x=3;x<6;x++) printf((x%2)?(“**%d):(“##%d\n”),x); 8、以下程序段的输出结果是C A) *#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ main() { int I; for (I=1;I<5;I++) , if(I%2) printf(“*”); else continue; printf(“#”); } printf(“$\n”); } 9、以下叙述正确的是D A)do_while语句构成的循环不能用其他语句构成的循环来代替. B)do_while语句构成的循环只能用break语句退出. C)用do_while语句构成循环时,只有在while后的表达式为非零时结束循环. D)用do_while语句构成循环时,只有在while后的表达式为零结束循环. 10、以下程序段的输出结果是D A) 39 81 B)42 84 C)26 68 D)28 70 main() { int x,I; for(I=1;I<=100;I++) { x=I; if(++x%2==0) if(++x%3==0) if (++x%7==0) printf(“%d”,x); } printf(“\n”); } 二、填空题 2、以下程序段的输出结果是 -1 main() { int x=2; while (x--); printf(“%d\n”,x); } 3、以下程序段的输出结果是11 int I=0,sum=1; do {sum+=I++;}while(I<5); printf(“%d\n”,sum); 4、有以下程序段 s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*k+1)); printf(“%f\n”,s); 请填空,使下面的程序段的功能完全与之等同. S=0.0; d=1.0; k=0; do { s=s+d; k++; d=1.0/(k*(k+1)); } while ( k<=n ); printf(“%f\n”,s); 5、以下的程序的功能是:从键盘上若干学生的成绩,统计并输出最高成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空. main() { float x,amax,amin; scanf(“%f”,&x); amax=x; amin=x; while( x>=0) { if(x>amax) amax=x; if( x scanf(“%f”,&x); } printf(“\namax=%f\n”,amax,amin); } 习题五函数 一、选择题 1、以下说法正确的是C A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言函数总是从main函数开始执行 D)C语言程序中的main函数必须放在程序的开始部分 2、以下函数的类型是C A)与参数x的类型相同B)void类型C)int类型D)无法确定 fff(float x) { printf(“%d\n”,x*x);- 3、以下函数的调用语句中,含有的实参个数是B A)1 B)2 C)4 D)5 Flunc( (exp1,exp2),(exp3,exp4,exp5)); 4、以下程序的输出结果是C A)11 B)20 C)21 D)31 flunc(int a ,int b) { int c; c=a+b; return c; } main() { int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf(“%d\n”,r); } 5、以下程序的输出结果是B a) 1 2 3 4 b) 4 3 2 1 c) 0 0 0 0 d) 4 4 4 4 main() { int a[]={1,2,3,4},i.,x=0; for(I=0; I<4;I++),sub(a,&x); printf(“%d”,x);- printf(“\n”); } sub(int*s,int *y) { static int t=3; *y=s[t]; t--; } 7、以下程序的输出结果是A a)8,17 b)8,16 c)8,20 d)8,8 main() { int k=4, m=1,p; p=func(k,m); ptintf(“%d,”,p); p=func(k,m); printf(“%d\n”,p); } func( int a,int b) { static int m,I=2; I+=m+1; m=I+a+b; return(m); } 8、以下程序的输出结果是C a)34756 b)23445 c)35745 d)12345 void fun(int *s) { static int j=0; do s[j]+=s[j+1]; while(++j<2); } main() { int k,a[10]={1,2,3,4,5}; for (k=1; k<3;k++) fun(a); for(k=0;k<5;k++) printf(“%d\n’,a*k+); } 9、以下程序的输出结果是D a) 3 b)6 c) 5 d) 4 f(int a) { int b=0; static int c=3; a=c++,b++; return(a); } main() { int a=2,I,k; for(I=0;I<2;I++) k+f(a++); printf(“%d\n”,k); } 10、以下程序的输出结果是B a) 1 b)2 c)7 d)10 int m=13; int fun2(int x,int y) { int m=3; return(x*y-m); } main() { int a=7,b=5; printf(“%d\n”,fun2(a,b)/m); } 11、C语言中,形参的缺省的存储类说明是A a)auto b)static c)register d)exterm 12、以下叙述不正确的是C a)一个变量的作用域完全取决于变量定义语句的位置; b)全局变量可以在函数以外的任何地方定义; c)局部变量的“生存期”只限于本次函数调用,因此不可能将其运算结果保存到下一次 调用; d)一个变量说明为static存储类是为了限制其他编译单位的调用; 二、填空题 1、以下程序输出正确的是9.000000 double sub(double x,double y,double z) { y-=1.0; z=z+x; return z; } main() { double a=2.5,b=9.0; printf(“%f\n”,sub(b-a,a,a)); } 2、以下程序输出正确的是4 fun1(int a , int b) { int c; a+=a; b+=b; c=fun2(a,b); return c*c; } fun2(int a ,int b) { int c; c=a*b%3; return c; } main() { int x=11,y=19; printf(“%d\n”,fun1(x,y)); } 3、以下函数用以求x的y次方。请填空。 double fun(double x,int y) { int I; double z; for(I=1;I z= x*x ; return z; } 4、以下程序的输出结果是 main() { int a=3,b=2,c=1; c-=++b; b*=a+c; { int b=5,c=12; c/=b*2; a-=c; printf(“%d,%d,%d \n”,a,b,c); a+=--c; } printf(“%d,%d,%d \n”,a,b,c); } 5、以下程序的输出结果是 2468 void fun() { static int a; a+=2; printf(“%d”,a); } main() { int cc; for (cc=1;cc<=4;cc++)fun(); printf(“\n”); 2,5,1 2,3,-2 习题六指针 一、选择题 1、若有定义:int x,*pb;则以下正确的赋值表达式是A A)pb=&x B)pb=x C)*pb=&x D)*pb=*x 2、以下程序的输出结果是B A)因变量无定义输出不定值B)0 C)-1 D)1 #include “stdio.h” main() { printf(“%d\n”,NULL); } 3、以下程序的输出结果是 B A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7 void sub(int x,int y,int *z) { *z=y-x; } main() { int a,b,c; sub(10,5,&a);sub(7,a,&b);sub(a,b,&c); printf(“%d,%d,%d\n”,a,b,c); } 4、以下程序的输出结果是C A)4 B)6 C)8 D)10 main() { int k=2,m=4,n=6; int *pk=&k, *pm=&m, *p; *(p=&n) = *pk*(*pm); printf(“%d\n”,n); } 5、已知指针p的指向如图6.1所示,则执行语句*p++;后,*p的值是 B A)20 B)30 C)21 D)31 图6.1 6、已知指针p的指向如图片6.1所示,则表达式*++p的值是 B A)20 B)30 C)21 D)31 7、已知指针p的指向如图6.1所示,则表达式++*p的值是 C A)20 B)30 C)21 D)31 8、以下程序的输出结果是D A)23 B)24 C)25 D)26 viod prtv(int *x) , printf(“%d\n”,++*x); - main() { int a=25; prtv(&a); } 9、以下程序的输出结果是 B A)运行出错B)100 C)a的地址D)b的地址 main() { int **k,*a,b=100; a=&b;k=&a; printf(“%d\n”,**k); } 10、以下程序的输出结果是C A)4,3 B)2,3 C)3,4 D)3,2 void fun(float *a, float *b) { float w; *a=*a+*a; w=*a; *a=*b; *b=w; } main() { float x=2.0,y=3.0; float *px=&x, *py=&y; fun(px,py); printf(“%2.0f,%2.0f\n”,x,y); } 11、以下程序的输出结果是 C A)9.000000 B)1.500000 C)8.000000 D)10.500000 void sub(float x,float *y,float *z) { *y=*y-1.0; *z= *z+x; } main() { float a=2.5,b=9.0,*pa,*pb; pa=&a; pb=&b; sub(b-a,pa,pa); printf(“%f\n”,a); } 13、若有以下说明和定义,则对FUN函数正确的调用语句是 B A)a=fun;a(w) B)a=fun;(*a)(&c); C)b=fun; *b(w); D)fun(b) main() { int (*a)(int *),*b(),w[10],c; ┆ } fun (int *c) { ┄ } 14、以下叙述正确的是 A A)C程序中各函数之间既允许直接递归调用又允许间接递归调用。 B)C程序中各函数之间不允许直接递归调用也不允许间接递归调用。 C)C程序中各函数之间允许直接递归调用不允许间接递归调用。 D)C程序中各函数之间不允许直接递归调用允许间接递归调用。 15、以下程序的输出结果是 C A)8 B)30 C)16 D)2 long fib(int n) { if (n>2) return(fib(n-1)+fib(n-2)); else return(2); } main() { printf(“%1d\n”,fib(6)); } 二、填空题 1、以下程序的输出结果是 110。 int *var,ab; ab=100;var=&ab; ab=*var + 10; printf(“%d\n”,*var); 2、以下程序的输出结果是71 。 int ast(int x,int y,int *cp,int *dp) { *cp=x + y; *dp=x – y; } main() { int a,b,c,d; a=4;b=3; ast(a,b,&c,&d); printf(“%d%d\n”,c,d); } 3、若有定义: char ch; (1)使指针p可以指向变量ch的定义语句是char *p=&ch; 。 (2)使指针p指向变量ch的赋值语句是p=&ch;。 (3)通过指针p给变量ch读入字符的scanf函数调用语句是 scanf(“%c”, p); 。 (4)通过指针p给变量ch赋字符的语句是*p=’A’;。 (5)通过指针p输出ch中字符的语句是 printf(“%c”,*p);。 4、假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROG ABCD EFGH IJKL main ( int argc, char *argv[]) { while (--argc>0) printf(“%s”,argv*argc+); printf(“\n”); } 5、以下程序的输出结果是7。 fun (int x) { int p; if (x==0‖x==1) return (3); p=x-fun(x-2); return p; } main () { printf (“%d\n”,fun(9)); } 6、以下程序的输出结果是8 fun (int n,int *s) { int f1,f2; if (n==1‖n==2) *s=1; else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } main() { int x; fun(6,&x); printf(“%d\n”,x); } 7、以下程序调用invert函数按逆序重新放置A数组中元素的值,A数组中的值在main函数中读入。请填空。 #define N 10 void invert(int *s,int i,int j) { int t; if (i { t=*(s+i); *(s+i)= *(s+j); *(s+j)=t; invert (s, i+1,j-1); } } main() { int a[N],I: for (I=0; i invert(a,0,N-1); for (I=0; i printf(“\n”); } 习题七数组 一、选择题 1、若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,I:,其中0<=I<=9,则对a数组元素的引用不正确 的是( D ) A)a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i)) 2、以下程序段给数组所有元素输入数据,应在下划线处填入的是( A ) A)a+(i++) B)&a[i+1] C)a+i D)&a[++i] main() { int a[10],i=0; while (i<10) scanf(“%d”,_____); … } 3、以下程序的输出结果是( A ) A)3 B)4 C)1 D)2 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf(“%d\n”,*(p+2)); } 4、以下程序的输出结果是( A ) A)不确定的值B)3 C)2 D)1 main() { int n[2]={0},I,j,k=2; for (I=0;I for(j=0;j printf(“%d\n”,n[k]); } 5、以下程序的输出结果是( A ) A)17 B)18 C)19 D)20 main() { int a[]={2,4,6,8,10},y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf(“%d\n”,y); } 6、以下程序输出结果是( A ) A)6 B)8 C)4 D)2 main() { int a[]={2,4,6,8},*p=a,I; for(I=0;I<4;I++) a[i]=*p++; printf(“%d\n”,a[2]); } 7、以下程序输出结果是( B ) C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B) A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main() C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2]下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3.] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4]. 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6]. C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8]. 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处 安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1 第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 第一部分C语言基础 一、选择题 1、以下正确得C语言标识符就是() A。%X B。a+b?C.a123 D.test! 2、已定义int a,b;则以下不正确得C语句就是() A.a*=5;??B。b/=2;? C.a+=1、75;?D.b&&=a; 3、若x、i、j与k都就是整型变量,则执行下面表达式后x得值为( ) x=(i=4,j=16,k=32) A.4?B.16 ?C.32 D.52 4、C语言中得标识符只能由字母、数字与下划线三种字符组成,且第一个字符( ) A.必须就是字母???B.必须为下划线? C.必须为字母或下划线D.可以就是字母、数字、下划线中得任一字符 5、下面正确得字符常量就是( ) A.“c”? B。’\\”? C.‘w’??D.” 6、设int a=2,b=0,c;则执行语句c+=b&&a--后, c得结果为( )。 A.0,1B.1,0 ?C.2,0 D.不确定 7、以下不正确得C语言标识符就是()?A) int B)a_1_2?C)ab1exe D)_x 8、以下就是正确得C语言标识符就是( )。?A)#define?B)_123 C) %d D) \n 9、下列四组字符串中都可以用作C语言程序标识符得一组就是() 。?A) prin tB)i\am C)Pxq D)str_l ???oodbs tart$it line# _3d one_half My-〉bookCpp ? pow 10、下面各选项组中,均就是C语言关键字得组就是()。?A)auto,enu m,include B)switch,typedef,continue?C)signed,union,scanf?D)if,s truct,type 11、下列不属于C语言关键字得就是( ) 。 A)default?B)register C)enum ?D)external 12、C语言程序从main()函数开始执行,所以这个函数要写在( )。?A) 程序文件得开始?B)程序文件得最后?C)它所调用得函数得前面 D) 程序文件得任何位置 13、下列关于C语言得叙述错误得就是( ) A)大写字母与小写字母得意义相同?B) 不同类型得变量可以在一个表达式中 C)在赋值表达式中等号(=)左边得变量与右边得值可以就是不同类型?D) 同一个运算符号在不同得场合可以有不同得含义 14、在C语言中,错误得int类型得常数就是( ) 。?A)32768?B)0 C)037?D) 0xAF 15、将字符g赋给字符变量c,正确得表达式就是( )。 A) c=\147 ?B)c="\147" ?C)c='\147' 16、下列转义字符中错误得一个就是( )。 A) ’\000’ B)'\0014' ?C) ’\x111’ D) ’\2’ 17、将空格符赋给字符变量c,正确得赋值语句就是( )。 A) c=’\0’ B) c=NULL C)c=0 D)c=32 18、已知:char a=’\70’;则变量a中()。 A)包含1个字符?B)包含2个字符?C) 包含3个字符?D) 说明非法 19、字符串"\”EOF\n=-\61\””得长度就是( )。 A)8 ?B) 9?C)14?D)非法字符串 年C语言程序设计基础期 末考试试卷‘B’及答案 The following text is amended on 12 November 2020. 一、单项选择题 1. 在C语言中,下面字符串能用作变量名的是( )。 A、a+b B、auto C、2-and D、a2 2. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A、 B. C. D. 3 3. 下列关于C语言中字符常量与字符串常量的叙述中,错 误的是( )。 A、字符常量是用单撇号括起来的一个字符 B、空格字符也可用作字符常量 C、字符串常量是用单撇号括起来的一个字符序列 D、字符串常量是用双撇号括起来的一个字符序列 4. 若有以下变量说明和数据的输入方式,则正确的输入语 句为( )。 变量说明:float x1,x2; 数据的输入方式:<回车> <回车> A、scanf(“%f,%f”,&x1,&x2); B、scanf(“%f%f”,&x1,&x2); C、scanf(“%,%”,&x1,&x2); D、scanf(“%%”,&x1,&x2); 6. 在一个源文件中定义的全局变量的作用域为()。 A. 本文件的全部范围 B. 从定义该变量开始至本文件结束 C. 本函数的全部范围 D. 本程序的全部范围 7. 当调用函数时,实参是一个数组名,则向函数传送的是( )。 A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值 8.若j为整型变量,则下面while循环( )。 j=10; while(j!=0) j=j-1; A、执行0次 B、执行1次 C、执行10次 D、执行无限次 9. 在while(x)语句中的x与下面条件表达式等价的 是:( )。 A、x!=0 B、 x==1 C、x!=1 D、x==0 10. 以下对C语言函数的描述中,正确的是( )。 A、调用函数时,参数可以是表达式 试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24 对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。 指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。 《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7) 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p 一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy , 一、选择题:(20分,每题2分) 1.以下不正确的C语言标识符是(D)。 A. ABC B. abc C. a_bc D. ab.c 2.C程序是由B构成的。 A. 主程序与子程序 B. 主函数与若干子函数 C. 一个主函数与一个其它函数 D. 主函数与子函数 3.以下说法中正确的是:A。 A. 在C语言中,实参与其对应的形参各占独立的存储单元; B.在C语言中,实参与其对应的形参共占同一个存储单元; C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单 元; D. 在C语言中,形参是虚拟的,不占存储单元。 4.设n=3;则n++的结果是(B)。 A. 2 B. 3 C. 4 D. 5 5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)。 A. 0 B. 1 C. 2 D. 3 6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是(A)。 A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)7.在while(x)语句中的x与下面条件表达式等价的是:D。 A. x= =0 B. x= =1 C. x!=1 D. x!=0 8.若有以下说明和语句: struct worker { int no; char *name; }work, *p=&work; 则以下引用方法不正确的是(D)。 A. work.no B. (*p).no C. p->no D. work->no 9.以下对二维数组进行正确初始化的是(B)。 A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6}; C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2},{3,4}}; 10.二维数组a有m列,则在a[i][j]之前的元素个数为:B。 A)j*m+i B)i*m+j C)i*m+j-1 D) i*m+j+1 二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1.#include 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20. C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后( #include C语言编程基础考试试题 文档名称文档密级 C语言编程基础考试 [考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C 语言的标 准函数都可用;如果不特别说明, 假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐, X86(80586)CPU处理器(32位小字节序处理器). 一、单选题 1、给出以下定义: char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度 2、 void example(char acHello[]) { printf("%d", sizeof(acHello)); return; } void main() { char acHello[] = "hello"; example(acHello); return; } 的输出是( ) A 4 B 5 C 6 D不确定 3、以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是在栈中保存 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数 中的成对括号构成的代码) 4、设有如下定义: unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr; 则下列程序段的输出结果为( ) 1 文档名称文档密级 pulPtr = pulArray; *(pulPtr + 2) += 2; printf ("%d,%d\n", *pulPtr, *(pulPtr + 2)); A)8,10 B)6,8 C)7,9 D)6,10 1. 以下的不是C语言标识符是(C)。 A)abc1_B)_abc1C)5BC1_D)Abc1 2. 结构化程序设计的基本结构不包括(A) A)从上到下的结构B)选择结构C)循环结构D)顺序结构 3. C程序的基本单位是(A)。 A)函数B)过程C)语句D)子程序 4. 以下选项中(C)是的C语言赋值语句。 A)x=3,y=5B)a=b=6C)i--;D)y=int(x); 5. 设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为(B)。 A)1B)2C)3D)0 6. 设整型变量x的值为5,y的值为2,则值为1的表达式是(D)。 A)!(y==x/2)B)Y!=x%3C)X>0&&y<0D)X!=y||x>=y 7. 假设整型变量a为2,使b的值为0的表达式是(C)。 A)b=a/2B)b=6-(--a)C)b=a%2D)b=a>3?0:1 8. 设int x=3,y=4,z=5;则下面表达式中值为0的是(D)。 A)x&&y B)x<=y C)x||y+z&&y-z D)!((x 课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】C语言程序设计试题及答案
C语言基础知识_测试题
C语言模拟试卷A
C语言程序设计试题集
C语言程序设计基础试题及答案
年C语言程序设计基础期末考试试卷‘B’及答案
c语言模拟试题
C语言程序设计习题集(3)
C语言试题及答案
C语言程序设计模拟试题1(附答案)
C语言程序设计程序填空题库及答案
C语言考试试题基础版
(完整word版)C语言期末模拟试题
C语言程序设计试题集与答案解析
C语言程序设计期末考试试题(含答案)
C语言编程基础考试试题
c语言模拟考试题2
c语言期末测试题(附答案)