您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页《C语言编程基础》试卷

《C语言编程基础》试卷

来源:测品娱乐
《C语言编程基础》试卷

题 号 分 数 得 分 一 40 二 40 三 60 四 30 五 10 六 20 总分 200 一、填空题:(每空2分,共40分)

1、十进制数125用一个字节的二进制表示是 。

2、源程序经过编译后产生的结果称为 ,其扩展名为 。 3、一个C语言函数由 和 两部分组成。

4、设指针变量fp,打开指定名为“abb.txt”的ASCII码文件只是为了写的表达式为 。

5、在内存中应该开辟 个字节来存放一个字符。 6、字符串”ab\\n\\\\012\\\\\\’”的长度是 。 7、以下程序的输出结果是 。

#include main( )

{ int i=6,j; j=(++i)+(i++) ; printf(“j=%d\\n”,j); }

8、有int x,y;执行y=(x=1,++x,x+2)后,赋值表达式的值为 。

9、在C语言中,没有专门为存储字符串的变量,但可以用 来存储字符串,其定义格式为 。

10、设x,y,z均为int型变量,请写出描述x,y和z中有两个为负数的表达式: 。 11、下列程序段中循环体的执行次数是 。

a=10; b=0;

do {b+=2;a-=2+b;} while(a>=0);

12、定义:int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后,a[1][2]得到的初值是 ,a[2][1]得到的初值是 。 13、下面程序段的运行结果是 。

char x[]=”the teacher”;i=0; while(x[++i]!=’\\0’)

if(x[i-1]==’t’) printf(“%c”,x[i]);

14、程序

#include main()

{int j,i=1; j=-i++; printf(“%d,%d\\n”,j,i);} 运行后输出结果为 15、程序

#include main()

{int a=177; printf(“a=%o\\n”,a);} 运行后输出结果为

16、若有以下定义:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 则语句:p+=2,*(p++);执行后的结果(值)是 二、选择题:(每题2分,共40分) 1、程序: main()

{int a=4,b=3,c=1,d=2,e=0; if(a>b) {if(c>d) e=1;} else e=4; printf(“%d\\n”,e); } 运行结果为( ). B、4、 C、6

D、8

D、\

A、0

2、下列字符中不属于转义字符的是( )。 A、\\n B、\\k

C、\\b

3、下面对变量说明正确的是( )。

A、Int a,b,c; B、int x,float y; C、int a,x; D、int a,x 4、以下正确的叙述是( )。

A、在C程序中,每行中只能写一条语句。

B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。 C、在C程序中,无论是整数还是实数,都能被准确无误地表示。 D、在C程序中,运算符%只能用于整数运算。

5、若以下变量均是整型,且num=sum=7,则计算表达式sum=num++,sum++,++num后的值为( )。 A、7

B、8

C、9

D、10

C、x=10,y=10,z=15 D、x=10,y=5,z=10

6、设x,y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y和z的值是( )。 A、x=10,y=15,z=10 B、x=10,y=10,z=10 下符合C语言语法的表达式是( )。

A、a+=a-=(b=4)*(a=3) B、a=a*3=2 C、x%(-3) 8、以下说法正确的是( )。

A、输入项可以为一个实型常量,如scanf(“%f”,3.5);

D、y=float(i)

7、变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以

B、只有格式控制,没有输入项也能进行正确输入,如scanf(“a=%d,b=%d”);

C、当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f); D、当输入数据时,必须指明变量的地址,如scanf(“%f”,&f); 9、以下if语句语法正确的是( )。 A、if(x>0) printf(“%f”,x)

else printf(“%f”,-x);

B、if(x>0){x=x+y;printf(“%f”,x);}

else printf(“%f”,-x);

else printf(“%f”,-x);

D、if(x>0){x=x+y;printf(“%f”,x)}

C、if(x>0){x=x+y;printf(“%f”,x);}; 10、以下叙述中不正确的是( )。 A、预处理命令行都必须以#号开始。

B、在程序中凡是以#号开始的语句行都是预处理命令行。 C、C程序在执行过程中对预处理命令行进行处理。 D、#define IBM_pc是正确的宏定义。

11、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句 c2=‘A’+‘6’-‘3’;后,c2的值为( )。 A、D

B、68

C、”0”

D、C

D、” ”

12、下面不正确的字符串常量是( )。 A、 ‘abc’ B、”12.12”

C、”0”

13、以下叙述不正确的是( )。 A、在C程序中,逗号运算符优先级最低。 B、在C程序中,APH和aph是两个不同的变量。

C、若a,b类型相同,在计算a=b后b中的值将放入a中,而b中的值不变。 D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入 实型数。

14、已知int x=10,y=20,z=30;执行语句if(x>y) z=x;x=y;y=z;后, x,y,z的值是( )。 A、x=10,y=20,z=30 C、x=20,y=30,z=10

B、x=20,y=30,z=30 D、x=20,y=30,z=20

15、设x,y均为float型变量,则以下不合法的赋值语句是( )。 A、++x; B、y=(x%2)/10; C、x*=y+8; D、x=y=0; 16、C语言中不合法的字符常量是( )。 A、’\\0xff’ 17、程序

main()

{ int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm);

printf(“%d\\n”,n);

B、’\\029’ C、’\\68’ D、’*’

} 运行结果为( )

B、4

C、6

D、8

A、2

18、定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语句 for(i=0;i<3;i++) printf(“%d”,x[i][2-i]);的输出结果是( )。 A、1 5 9 B、1 4 7

C、3 5 7

D、3 6 9

B、int a[6]={,1,2,3,4,5}; D、int a[7]={0,0,1,2,3,4,5};

19、有以下定义语句:int a[]={0,1,2,3,4,5,0};下面选项中与其等价的是( )。 A、int a[7]={0,1,2,3,4,5,0}; C、int a[7]={0,1,2,3,4,5,1}; 20、在程序:main()

{int i,j; for(j=1;j<=8;j++) {for(i=1;i<=10;i++) printf(“*”); printf(“\\n”);

} 中,内层循环的循环体printf(“*”);

共被执行了( )次。 A、10 B、40 C、60 D、80

三、写出序的运行结果(每题4分,共60分)。

1、若执行以下程序时从键盘上输入9,则输出结果是

main() {int a;

scanf(“%d”,&a);

if(a++<10) printf(“%d\\n”,a--); else printf(“%d\\n”,a); }

{ int i=1,j=1,k=2;

if((j++||k++)&&i++) printf(“%d,%d,%d”,i,j,k); }

2、main( )

运行结果为 3、#include

main()

{int a=-1,b=4,k; k=(a++<=0)&&(!(b--<=0)); printf(“%d,%d,%d\\n”,k,a,b); 运行结果为 fun(int b)

4、 int a=5;

{static int a=10; a+=b++;

printf(“%d”,a); } main( ) { int c=20; fun(c); a+=c++;

printf(“%d\\n”,a);

} 运行结果为

5、main()

{ int x[8]={8,7,6,5,0,0},*s; s=x+3;

print(“%d\\n”,s[2]); } 运行结果为 6、#include main() {int a=2,i; for(i=0;i<3;i++) printf(“%4d”,f(a)); } f(int a) {int b=0; static int c=3; b++;c++; return(a+b+c); }

运行结果为 7、执行程序:

#include main() {int i,j; for(i=1;i<5;i++) for(j=2;j<=i;j++)

putchar(‘#’); } 运行结果为 main()

int a=4,b=3,c=5,t=0; if(a>b) t=a;a=b;b=t;

8、程序:

if(aprintf(“%d,%d,%d\\n”,a,b,c); } 运行结果为

9、程序:

int d[5]={2}; main() {int i; int *p=d; for(i=1;i<=4;i++) {d[i]=*p+3;p++;} printf(“%d\\n”,d[4]); } 运行结果为 main() {int a=4; switch(a++) {default:a+=10; case 5:a+=10; case 4:a+=10; break; }

printf(“%d”,a); } 运行结果为 main()

{int a=0,b=0,i; for(i=0;i<10;i++) if(i%2) a+=i; else b+=i;

printf(“%d\%d”,a,b); } 运行结果为

10、程序:

11、程序:

12、程序:

main() {int i,j; i=100;j=200;

printf(“(i++)+j=%d\\n”,(i++)+j); i=100;j=200;

printf(“i+(++j)=%d\\n”,i+(++j));

i=100;j=200;

printf(“i+++j=%d\\n”,(i+++j)); } 运行结果为

13、程序:

#define MIN(x,y) (x)<(y)?(x):(y) main() {int i,j,k; i=10;j=15; k=10+MIN(i,j); printf(“%d\\n”,k);

} 运行结果为 main() {int a=1; while(a<=15) {if(a%3!=0)

{a++; continue;}

14、程序:

printf(“%d ”,a); a++; }

printf(“\\n”);

} 运行结果为 #include main()

{char p1[]=“abc”,p2[]=“ABC”,str[50]=“xyz”; strcpy(str,strcat(p1,p2)); printf(“%s”,str);

} 运行结果为

15、程序:

四、根据要求,完成程序(每个空分,共30分)。

1、下面程序的功能是在输入的一批正数中求出最大者,输入0结束循环。

#include main( ) {int a,max=0; scanf(“%d”,&a); while( )

{if(max}

}

printf(“%d”,max);

2、以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。 m ain()

{int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}}; int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}}; int i,j,c[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) for(i=0;i<3;i++) }

3、下面程序的功能是在一个数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中第一次出现的位置(下标值),否则输出-1。 #include #include main()

{ char c=’a’,t[50]; int n,k,j; gets(t);

n= ; for(k=0;kif( ) {j=k; } else j=-1;

printf(“%d”,j); }

*

main() {int I,j; for(i=1;i<=4;i++)

{for( )

printf(“ “);

for(j=1;j<= ;j++)

{for(j=0;j<4;j++) }

4、下面程序的功能是输出以下形式的金字塔图案,请填空:

*** ***** *******

}

printf(“*”); printf(“\\n”); }

5、以下程序的功能是:输入某一公元年份,判断是否为闰年,请填空:

#include main() {int y;

scanf(“%d”,&y);

if( ) printf(“闰年”); else printf(“平年”); }

6、下面程序功能是求100!,请填空:

#include main() int i=1; double s=1; do

{ i++;}

while

printf(“1*2*3*…*100=%f”,s); }

#include #include void abc(p1,p2) int *p1,*p2; {int p;

p=*p1;*p1=*p2;*p2=p;} main()

{int a,b; int *r,*s;

scanf(“%d,%d”,&a,&b); ; ; ; printf(“%d,%d\\n”,a,b);

7、下面程序功能是将两个整数按从小到大的顺序输出,请填空:

}

)1、语句:int i,*p=i;是正确的C说明语句。 )2、变量定义语句:float x,y,do;是错误的。 )3、表达式:(x+y)++使x+y的值增加1。

)4、C程序一行可以写多条语句,但一条语句只能写在一行上。 )5、C语句for(;;) s中的语句s必执行无穷多次。

五、判断题:(每题2分,共10分)。 ( ( ( ( (

六、编程题:(每题10分,共20分) 1、输出如下形式的九九乘法表。

# 1 2 3 4 5 6 7 8 9 1 1 2 2 4 3 3 6 9 ……

9 9 18 27 36 45 54 63 72 81

2、用scanf()函数建立一个3×3的数组b,输出各行元素之和。

一、填空题(每空2分,共40分)

1、01111101B(也可没有B)、2、目标文件、.OBJ 3、函数头(函数说明部分)、函数体4、fp=fopen(“abb.txt”,”w”) 5、1

6、9 7、j=14 8、4或y=4 9、字符型数组或

11、3 12、0、6 13、he 14、

字符型指针、 char str[6];或char *str;(只要形式相同即可,标识符可不同)、10、(x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0) -1,2 15、a=261 16、3 二、选择题(每题2分,共40分) 1、A、 2、B

3、C

4、D

5、C

6、A

7、A

8、D 9、A 10、C

11、B 12、A 13、D 14、B 15、B 16、B 17、D 18、C 19、A 20、D 三、写出程序运行结果(每题4分,共60分) 1、10 2、2,2,2 3、1,0,3 4、3025

5、0

6、7 8 9 7、######

i+(++j)=301 i+++j=300

8、5,4,3 9、14 10、15 11、25口口口口口口20 12、(i++)+j=300 13、15 14、3 6 9 12 15 15、abcABC

四、根据要求,完成程序(每题2分,共30分) 1、a或a!=0 、scanf(“%d”,&a); 3、strlen(t)、t[k]==c 、break;

2、c[i][j]=a[i][j]+b[i][j];、 printf(“%3d”,c[i][j]);、 printf(“\\n”); 4、j=1;j<=4-i;j++或j=4;j>i;j—或j=4;j>=i;j-- 、 2*i-1 5、(y%4==0&&y%100!=0)||(y%400==0) 6、s*=i;、(i<=100); 7、r=&a、s=&b、if(a>b)abc(r,s); 五、判断题(每题2分,共10 分)

1、错 2、对 3、错 4、错 5、对 六、编程题:(每题10分,共20)

#include —--------------(1分) main( ) { int i, j;

printf(“ 九九乘法表\\n“);

printf(“%4c”,’#’);---------------(1分) for(i=1;i<=9;i++) -------------------(2分)

printf(“%4d”,i);

printf(“\\n”);---------------------( 1分) for(i=1;i<=9;i++)-------------------(2分) }

2、#include main()

{int i,j,b[3][3];

int sum[3]={0};---------------------------(1分) for(i=0;i<3;i++)--------------------------(2分) for(j=0;j<3;j++)--------------------------(2分) scanf(“%d”,&b[i][j]);------------------ (1分) for(i=0;i<3;i++)-------------------------(1分) }

{for(j=0;j<3;j++)--------------------(1分) sum[i]+=b[i][j];---------------------(2分) }

{printf(“%4d”,i);

for(j=1;j<=i;j++)-------------------(2分)

printf(“%4d”,i*j);------------( 1分) }

printf(“\\n”);

printf(“sum[%d]=%d\\n”,sum[i]);

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务