文档库 最新最全的文档下载
当前位置:文档库 › c语言模拟试题(3)

c语言模拟试题(3)

c语言模拟试题(3)
c语言模拟试题(3)

模拟试题二

一.选择填空(选择一个正确答案,将其对应字母填在横线上)(25分)1.C程序中,unsigned int x;定义的变量取值范围为;

A:0~255 B:0~65535 C:0~32767 D:0~2147483647

2.C语言中,正确的字符与字符串表示方式为;

A: char a=…a?,b=“abc”;B:char a=…a?,b[]= “abc”;

C: char a=“a”,b[]=“abc”;D:char a=…a?,b[2]= “abc”;

3.若a是float型变量,b是int型变量,以下输入语句合法的是;

A:scanf(“%6f%f”,&a,&b) B:scanf(“%8f%d”,&a,&b)

C:scanf(“%6d%d”,&a,&d) D:scanf(“%6f%c”,&a,&d)

4.如果i=1,执行j=++i;k=i++;其j、i和k的值是;

A:2,2,2; B:1,2,3 ; C:1,1,1; D:2,3,2

5.在if(条件)语句执行时,当条件为时C语言认为是“真”;

A:TRUE; B:. T . C:0 D:非零值

6.如果int a[4]={1,2,3,4},*p=&a[2];执行p++;其*p+a[0]的值为;

A:2B:3 C:4 D:5

7.设int a,b,c; 且a=10;b=4;a/=b;则表达式(a/b?b+a:b-a)之值是;

A:0. 5 B:6; C:2;D:-2

8.对于int a[10];正确的赋值语句是__;

A:*(a+2)=4;B:a=6;C:a+2=4;D:*(a+15)=4;

9.设int x,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是;

A:4B:16C:32D:52

10.对于int a[ ][3]={1,2,3,4,5,6, 7, 8, 9,10}说明语句,

且有:数据元素a[1][2]+a[3][1]的值为_________;

A:15 B:16C:8 D:6

11.int n=97;

switch(n/10-4)

{ case 2: n=n+1;

case 3: n=n*2;

case 5: n=n-2;

case 7: n=n+3;break;

default: n=n/2;

}

n的正确结果值是________

A:95B:96C:97D:98

12.已知int i=j=2; char *a="abcdefg", c;

执行c=*(a=a+3);c的值是__________。

A.‘b’ B:‘c’ C:‘d’D:‘e’

13.阅读下列程序,结果是

main()

{ int a=5,b=0,c=0;

if(a=b+c) printf("***\n");

else printf("###\n");}

A:语法有错误,不能编译B:输出 ***C:通过编译,但不能连接D:输出 ### 14.for( ;3; );代表的意义是;

A:死循环 B:不循环 C:循环3次 D:语法错误

15.对于表达式53/2&&!0和!(15>3||5<6-8)的逻辑值,分别是;

A:0,1 B:1,0 C:0,0; D:1,1

16.有时需要使几种不同类型的变量存放到在一起,形成一个变量,这种变量,称为;A:结构体变量B:字符变量 C:整型变量 D:实数变量

17.设char w; int x; float y; double z;表达式w*x+z-y的值的数据类型为

A:char B:int C:float D:double

18.有以下程序段C

FILE *fp;

fp=fopen(“a1”,“r”);

其表示为

A:定义了一个普通指针,函数值给指针赋值。B:定义了一个文件a1

C:打开一个文件,该文件可读可写D:打开一个文件,该文件只能读不能写

19.下面对数组的定义正确的是

A:int n=10; int array[n]; B:int array(10);

C:int n; scanf(“%d”,&n); int array[n];

D:int n; int array[n]; scanf(“%s”,array);

20.下面各语句行中,能正确进行赋字符串操作的语句行是

A:char s[4][5]="abcd","123";B:char s[5]={…a?,…b?,…c?,…e?,…f?};

C:char *s; s="abcd";D:char s[5]; s="abcd";

21. 在一个C语言程序构成中,较完整的描述是

A:由主程序与子程序构成B:由多个主函数与多个子函数构成

C:由主函数与子函数构成 D:由一个主函数与多个子函数构成

22.C语言在程序开始执行时,其正确的描述是

A:由编写程序语句的顺序格式执行B:在主函数main()开始处执行

C:在第一个子函数处执行 D:由人随机选择执行

23. 下列有关函数错误的描述是

A: C语言中允许函数嵌套定义B: C语言中允许函数递归调用

C:调用函数时,实参与形参的个数、类型需完全一致

D: C语言函数的缺省数据类型是int类型

24. 在C语言中,函数的返回值的类型是由

A: 在程序编译时决定 B: 由调用该函数的主调函数所决定

C: 由return的表达式的类型所决定 D: 由定义该函数时指定的函数类型所决定25.当调用函数时,如果实参是一个数组名,则向函数传送的是

A: 数组的首元素 B:数组的首地址

C: 数组每个元素的地址 D:数组每个元素中的值

二.读下列程序,给出程序的运行结果(30分)

1.main()

{ int i,j,m,n;

i=5; j=6; n=10;

m=++i; n/=j++;

printf(“m1=%d n1=%d”,m,n);

m=i++; n=++j;

printf(“m2=%d n2=%d”,m,n);

}

结果:m1=n1=m2=n2=

2.main()

{ int a[20],b=1;

for (a[0]=b;b<=10;b+=2)

{ a[b]=b;

if (b>7) break;

b++; }

printf(“a=%d”,a[b]);

}

结果:a=

3.

#include “stdio.h”

main ( )

{char ch;

scanf("%c",&ch);

if(ch>=?B? && ch

else putchar(ch);

}

输入M,运行结果为:______;输入b,运行结果为:______

4.

main (){ int a[3][3]={1,2,3,4,5,6,7,8,9};int *p1=&a[1][2],*p2=a+2; printf("%d, %d\n",*p1, *p2);

printf("%d, %d\n", *(++p2), a[2][2]);

}

输出为:

5.

main ( )

{ int i;

char *p,b[10];

p=“abcde”;

for(i=0;i<3;i++)

{ b[i]=*p; p++; }

b[i]= '\0';

printf(“%s”,b);

}

输出为:b=

6.

#include "stdio.h"

int fun(int x)

{int y=0;

static z=3;

y++;

z++;

return (x+y+z);

}

main()

{int a=2,i;

for(i=0;i<3;i++)

printf("\t%d", fun(a);

}

结果为:。

三.填空题(25分)

1.如果p是一个指针,那么*&p表示的含义是,而&*p表示的含义是。

2.已知数组s为一有8个单元的整型数组,下面的语句的语句试图求出这8个单元的平均值,并用ave保存这个值;请补充完整下面的语句。

int j,s[ ]={1,2,3,4,5,6,7,8},sum= ;

for( ; ; j++) ;

ave= /8;

3.变量在程序使用中,其作用域可分为变量和变量。

4.打印如下图案,选择合适的句子填入该程序空格中。

0 0 0

0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0

0 0 0

#include

void a(int i)

{ int j,k;

for (j=0;j<7-i;j++) printf(“ ”);

for (k=0;________;k++) printf(“0”);

printf(“\n”);

}

main()

{ int i;

for (i=0;i<3;i++) _________;

for (i=3;i>=0;i--) _________;

}

5.用选择法对数组为n个整数进行由大到小排序,选择合适的句子填入该空格中。

#defin N 100

main()

{ int i,a[N],n;

scanf("%d",&n);

void sort(int array[] , int n);

for(i=0;i

sort( a, );

printf("the sorted array:\n);

for(i=0;i<15;i++)printf("%d",a[i]);

}

void sort(, int n)

{ int i,j,k,t;

for(i=0;i

{ k=i;

for(j=i+1;j

if(array[j]>array[k] k=;

t=array[k];array[k]=array[i];array[i]=t;

}

}

6. 下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数,选择合适的句子填入该程序空格中。

main()

{ int a[5],max,min,i,j,k;

for (i=0;i<5;i++)

scanf(“%d”,&a[i]);

min=a[0];

for (i=1;i<5;i++)

if (a[i]

max=a[0];

for (i=1;i<5;i++)

if (a[i]>max) { max=a[i];________ ;}

___________

printf(“\nThe position of min is:%3d\n”,k);

printf(“The position of max is:%3d\n”,j);

for (i=1;i<5;i++)printf(“%5d\n”,a[i]);

}

四.编写程序(20分)

1.通过键盘输入10整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。

2.在两题中,可选择其中一题。

(1)编写一个累加求和的子函数,在主函数中调用其子函数,实现1~100中的偶数求和;

(2)编程求一个n*n矩阵的主对角线元素求和的子函数,在主函数中输入n以及矩阵各元素的值(设该矩阵元素均为整型数据)。

模拟试题二参考答案

一.选择填空(25分,每空1分)

1: B 2: B 3: B 4: D 5:D

6:D7:C8:A9:C10:D

11:D12:C13:D 14:A 15: B

16: A 17: D 18: D 19: A 20: C

21: D 22: B 23: A24: D 25: B

二.读下列程序,给出程序的运行结果(30分,每题5分)1:m1=6n1=1 m2=6 n2=8

2:a=10

3: M结果 m

b结果 b

4:6 , 7

8 ,9

5:abc

6:7 8 9

三.填空题(25分)

1. p p (3分)

2.0 j=0 j<8 sum=s[i]+sum; sum(5分)

3.全局变量局部变量(2分)

4.k<2*i+1

a[i]

a[i]

5.n int array[] j

6. j=i

k=i

a[j]=max a[k]=min

五.编写程序(20分)

1.(10分)

2.3.(10分)

整个程序完整(2分)

编完整主函数(4分)

编完整子函数(4分)

未用子函数编程,扣分。

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

C语言程序设计模拟试题2(附答案)new

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 )

C语言模拟试题1

一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表:

下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内

C语言考试试题基础版

一、选择题 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 ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

C语言模拟题

一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b

C语言程序设计模拟试题A(附答案)

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 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}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) {printf(“*”); x- -; } A) ****B) ***C) **D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。 解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。

A)9B) 8C) 5D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 A) 数组的首地址B) 数组第一个元素的值 C) 数组中全部元素的值D) 数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。 A)void B)double C)int D)char 8、下面不能正确进行字符串赋值操作的语句是(C)。 A) char s[5]={"ABCD"};B) char s[5];s="ABCD"; C) char *s;s="ABCDEF";D) char *s="ABCD"; 解析:这样理论上的没错的把s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样char s[] = "ABCDEF"; 或char s[8];strcpy(s, "ABCDEF"); 9、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(C)。 A)++p B)++(*p)C) *(++p)D) *(p+=2) 解析: A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x,int y) { int m=3; return( x*y-m); } main( ) { int a=7,b=5;

C语言程序设计试题第3套

C语言程序设计试题(第3套) 一、单项选择题(30分,每题2分) 1.下面关于C语言的说法,错误的是______。 A、一个C程序总是从执行main开始。 B、C程序可以用/<*……*>/ 对程序作注释。 C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。 D、在C程序中,数据定义的最后必须写上一个分号。 2.判断字符串s1是否大于字符串s2,应当使用。 A、if (s1>s2) B、if (strcmp(s1,s2)) C、if (strcmp(s2,s1)>0) D、if (strcmp(s1,s2)>0) 3. 下列表达式错误的是______。 A、4/7 B、4.0/7.0 C、(-4)%(-7) D、4.0%7.0 4. 以下能定义为用户标识符的是______。 A、scanf B、printf C、_3com_ D、int 5. 能正确表示a和b 同时为正或同时为负的逻辑表达式是______。 A、(a>=0‖b>=0)&&(a< 0‖b<0) B、(a>=0&&b>=0)&&(a< 0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 6. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1%c2 ; 则执行后,c3的值是______。 A、2.0 B、2 C、3.0 D、3 7.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。 A、scanf("%d%d%d",i,j,k); B、scanf("%d %d %d",&i,&j,&k); C、scanf("%d,%d,%d",&i,&j,&k); D、scanf("%d,%d,%d",i,j,k); 8. 以下程序输出结果是。 A、7 B、6 C、5 D、4 main() { int m=5; if(m++>5) printf("%d\n",m); esle printf("%d\n",m- -); } 9. 有以下程序段 #include main() {int sum=0,i; scanf("%d",&i); do {sum=sum+i;i++;} while(i<=10); printf("sum=%d\n",sum); } 若运行时从键盘输入11,则循环体会执行。 A、11次 B、10次 C、1次 D、0次 10.二维数组int a[4][4]前5个元素在内存中的排列次序为。 A、a[0][0] a[1][1] a[2][2] a[3][3] a[4][4] B、a[0][0] a[0][1] a[0][2] a[0][3] a[1][0]

C语言模拟试题

C语言模拟试题 一、单项选择题(共40分每题1分) 说明:答案必须填写在答题卡的相应位置上,否则不得分。 1.C语言中字符型(char)数据在内存中的存储形式是____D____。 A、原码 B、反码 C、补码 D、ASCII码 2.C语言中基本的数据类型包括___B_____。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 3.在C语言中,int类型数据在内存中占用____C____。 A、2字节 B、4字节 C、由编译系统决定 D、由用户决定4.运算符有优先级,C语言中关于运算符优先级的正确叙述是____B____。 A、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。 5.下面关于C语言语句的叙述,错误的是___C_____。 A、C语言一行可以允许写多条语句; B、C语言语句用分号结束; C、语句一行写不下时,可以用逗号换行; D、语句一行写不下时,可在任意一空格处回车换行。 6.下面数据中不属于字符型常量的是____A____。 A、“\n” B、…\0? C、…A? D、…\t? 7.11.以下选项中,当x为大于1的奇数时,值为0的表达式______D____ 。 A、x%2==1 B、x/2 C、x%2!=0 D、x%2==0 8.C语言源程序名的后缀是____B____ 。 A 、.exe B、.C C、.obj D、.cp 9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是____D____。 A、7 B、8 C、6 D、2 10.若有说明语句:int a;float b;,以下输入语句正确的是___C_____。 A、scanf("%f%f",&a,&b); B、scanf("%f%d",&a,&b); C、scanf("%d,%f",&a,&b); D、scanf("%6.2f%6.2f",&a,&b); 11.已知int a,b; 用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是_____A___。 A、, B、空格 C、回车 D、[Tab] 12.C语言对嵌套if语句的规定是:else总是与___D___配对。 A、与之前最近的if B、第一个if C、缩进位置相同的if D、其之前最近的且尚为配对的if 13.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是___D___。 A、if(a)s1; else s2; B、if(a==0)s2; else s1; C、if(a!=0)s1; else s2; D、if(a==0)s1; else s2;

计算机二级c语言第3套笔试模拟试卷

第3套笔试模拟试卷 一选择题: (1)下列叙述中正确的是()。 A)一个算法的空间复杂度大,则其时间复杂度必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对 (2)下列叙述中错误的是()。 A)线性表是由n个元素组成的一个有限序列 B)线性表是一种线性结构 C)线性表的所有结点有且仅有一个前件和后件 D)线性表可以是空表 (3)数据的存储结构是指()。 A)数据所占的存储空间 B)数据的逻辑结构在计算机中的存放形式 C)数据在计算机中的顺序存储方式 D)存储在计算机外存中的数据 (4)下面对对象概念描述正确的是()。 A)任何对象都必须有继承性 B)对象是属性和方法的封装体 C)对象间的通信靠信息传递 D)方法是对象的静态属性 (5)有下列二叉树,对此二叉树前序遍历的结果为()。 A)ACFXDBEYZ B)ABEFXYZCD C)ABCDEFXYZ D)ABDYECFXZ (6)两个或两个以上模块之间联系的紧密程度称为()。 A)耦合性 B)内聚性 C)复杂性 D)数据传输特性 (7)在下列关于二叉树的叙述中,正确的一项是()。 A)在二叉树中,任何一个结点的度都是2 B)二叉树的度为2 C)在二叉树中至少有一个结点的度为2 D)一棵二叉树的度可以小于2

(8)待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。 A)3 B)5 C)7 D)9 (9)以下所述中,是软件调试技术的是()。 A)错误推断 B)集成测试 C)回溯法 D)边界值分析 (10)设有如下关系表: A)T=R/S B)T=R×S C)T=R∩S D)T=R∪S (11)C语言程序的执行是()。 A)从程序的主函数开始,到程序的主函数结束 C)从程序的主函数开始,到程序的最后一个函数结束 B)从程序的第一个函数开始,到程序的最后一个函数结束 D)从程序的第一个函数开始,到程序的主函数结束 (12)下列不合法的用户标识符是()。 A)j2_KEY B)Double C)4d D)_8_ (13)若变量已正确定义,以下表达式错误的是()。 A)a/b+c B)a%(5.0) C)a=1/3*(x=y=10,x*2) D)a=b=c (14)下列不合法的数值常量是()。 A)011

C语言模拟题

一、单项选择题 1、以下字符中不是转义字符的是(A)。 A、'\c' B、'\b' C、'\\' D、'\a' 2、设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为(A)。 A、0 B、144 C、132 D、12 3、已定义float x=1.25,y=3.37; 根据下面的输出结果,正确的输出语句是(C). y+x=4.62,y-x=2.12 A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x); B、printf("y+x=%f,y-x=%f\n",y+x,y-x); C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x); D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x); 4、执行下面程序段后,b的值为(A). int s=35; char t='A'; int b; b=((s&&4)&&(t<'a')); A、1 B、3 C、2 D、0 5、若k是整型,则以下程序段的执行结果是:(B) k=-3; if(k<=0) printf("####") else printf("&&&&"); A、#### B、有语法错误,无结果 C、&&&& D、####&&&& 6、设j和k都是int类型,则下面的for循环语句(D)。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);

A、最多执行9次 B、是无限循环 C、循环体一次也不执行 D、最多执行10次 7、以下正确的描述是(A). A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 8、以下能对一维数组a进行正确初始化的语句是(B)。 A、int a[10]={}; B、int a[]={0}; C、int a[10]={10*1}; D、int a[10]=(0,0,0,0,0) 9、以下正确的说法是(A). A、函数的类型决定返回值的类型 B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式 D、如果形参与实参的类型不一致,以实参类型为准 10、以下程序的输出结果为(C)。 main() {int a=1,b=2,c=3,d=4,e=5; printf("%d\n",func((a+b,b+c,c+a),(d+e))); } int func(int x,int y) { return(x+y); } A、9 B、15 C、13 D、函数调用出错 11、以下正确的说法是(D)。 A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 B、用户若需调用标准库函数,调用前必须重新定义 C、系统根本不允许用户重新定义标准库函数 D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义 12、在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是

C语言三套考题与答案

C语言三套考题与答案(1) 选择题 1、在计算机上可以直接运行的程序是(C)。 A、高级语言程序 B、汇编语言程序 C、机器语言程序 D、C语言源程序 2. 以下正确的C语言自定义标识符是__A____。 A. _1a B. 2a_ C. do D. a.12 3、C语言程序的基本单位是(B )。 A、程序行 B、语句 C、函数 D、字符 4、下列运算符的优先级最高的是(C)。 A、关系运算符 B、赋值运算符 C、算术运算符 D、逻辑运算符 5.逗号表达式a=2*6,a*3,a+5的值是_____B____。 A. 12 B. 17 C.36 D. 41 6、‘A’ + 3 的结果是(B )。 A.’A’B.’D’的ASCⅡ码C.65 D.3 7、sizeof(float) 是(C )。 A、一种函数调用 B、一个不合法的表示形式 C、一个整形表达式 D、一个浮点表达式 8、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C)。 A、1 B、2 C、2.0 D、2.5 9、设有如下定义语句 Char ch=?\77?; 则下列说法中正确的是(A )。 A、ch中含有1个字符 B、ch中含有2个字符 C、h中含有3个字符 D、语法出错 10)若有定义语句:int x=10;,则表达式x-=x+x的值为( B ) A)-20 B)-10 C)0 D)10 11、以下程序运行后的输出结果是(B )。 #include void main() {

int a=666,b=888; printf(“%d\n”,a,b); } A、错误信息 B、666 C、888 D、666,888 (12)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是 ( D ) (A)必须是逻辑值(B)必须是整数值 (C)必须是正数(D)可以是任意合法的数值 13、假定从键盘输入23456< 回车>,下面程序的输出结果是:(C )void main ( ) { int m,n;scanf(“%2d%3d”,&m,&n);printf(“m=%d n=%d\n”,m,n);} A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 14、以下程序执行后的输出结果是(D )。 #include void main() { int i=1,j=2,k=3; if(i++= =1&&(++j= =3||k++= =3)) printf(“%d?%d?%d\n”,i,j,k); } A、1 2 3 B、2 3 4 C、2 2 3 D、2 3 3 15. 设int a=11, b=2;执行下述程序段后,变量a和b的值分别是___B____。 do { a/=b++; }while(a>b); A. 1,3 B. 1,4 C. 2,3 D. 2,4 (16)有以下程序 #include main() { int s; scanf(“%d”,&s); while(s>0) { switch(s) {case 1:printf(“%d”,s+5); case 2:printf(“%d”,s+4);break; case 3:printf(“%d”,s+3); default:printf(“%d”,s+1);break; } scanf(“%d”,&s); }

C语言模拟试题(答案)

一、选择题 1.有如下程序: main() { int a=1,b=2; a+=b;b=a-b;a-=b; printf("%d,%d\n",a,b); } 该程序的输出结果是【】。 A.1,2 B.2,1 C.2,2 D.3,2 2.有以下程序: main() { int i; for(i=0;i<3;i++) switch(i) { case 1:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } 执行后输出的结果是【】。 A.011122 B.012 C.012020 D.120。3.有以下程序: main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } 执行后输出结果是【】。 A.5 B.4 C.6 D.不确定 4.有如下程序: f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c) ;

} main() { int a=2,i; for(i=0;i<3;i++) printf("%2d",f(a)); } 该程序的输出结果是【】。 A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 8 5.有如下程序段: main() { int a,b,c=246; a=c/100%9; b=(-1) && (-1); printf("%d,%d\n",a,b); } 输出结果是【】。 A.2,1 B. 3,2 C. 4,3 D. 2,-1 6.有如下程序: main() { char str[ ][20]={"Hello","Beijing"}, *p=str; printf("%d\n",strlen(p+22)); } 该程序的输出结果是【】。 A.0 B.5 C.7 D.20 7.有如下程序: #define U 2 #define V U+2 #define X V*V/2 main() { printf("%d\n",5*X); } 该程序的输出结果是【】。 A.10 B.20 C.15 D.40 8.有以下程序: main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=a[i][1];

相关文档