C语言模拟题

  • 格式:doc
  • 大小:66.50 KB
  • 文档页数:6

C 语言程序设计模拟题

一、选择题(共15分,每题 1分 )

1.C

以下叙述中,正确的是 。

A. 在C程序中,main函数必须位于程序的最前面

B. C程序的每一行只能写一条语句

C. C语言本身没有输入输出语句

D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误

2.A

while循环为当型循环,其特点是 。

A. 先判断表达式,后执行语句

B. 先执行语句,后判断表达式

C. 只判断表达式

D. 直接执行语句

3. B

设有变量定义char str[80]; 下列 语句能将字符串“shanghai 2011”从键盘输入到数组变量str中。

A. printf("%s",str);

B. gets(str);

C. scanf("%s",str);

D. puts(str);

4. B

循环语句中,continue语句的作用是 。

A. 终止程序

B. 结束本次循环

C. 从本循环体内跳出

D. 跳出子函数

5. B

下列 语句定义p为指向double类型变量x的指针。

A. double x, *p=x;

B. double x, *p=&x;

C. double *p=&x , x;

D. double x, p=x;

6. D

下面四个程序段中,不能输出23个*号的程序段是 。

A. for(int i=0; i<23; i++) putchar(„*‟);

B. for(int j=23; j>0; j--) putchar(„*‟);

C. int k=23; while(k>0) {putchar(„*‟); k--;}

D. int i=0; while(i>23) {putchar(„*‟); i++;}

7. B

以下对结构体变量stu1中成员age的非法引用是 。

stuct student

{

int age;

int num;

}stu1, *p=&stu1;

A. stu1.age

B. student.age

C. p->age

D. (*p).age

8. D

设有变量定义 int x, a=3, b=4; 则语句 x=(a=0)&&(b=8); 执行之后各变量的值为 。

A. x=0, a=0, b=8

B. x=1, a=3, b=4

C. x=1, a=0, b=8

D. x=0, a=0, b=4

9.A

下列标识符中,不合法的标识符为: 。

A. a#b

B. _int

C. a_10

D. Pad

10. C

若希望A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是 。

A. A%2==1

B. !(A%2==0)

C. !(A%2)

D. A%2

11. D

为了判断两个字符串s1和s2是否相等,应当使用_____。

A. if (s1==s2 )

B. if (s1 = s2 )

C. if ( strcpy (s1,s2 ) )

D. if ( strcmp( s1,s2) == 0 )

12.B

以下程序段的输出结果为: 。

for ( i=4; i>1;i-- )

for ( j=1; j

putchar(„#‟);

A. #

B. ######

C. ##

D. ###

13. B

设x,y和z是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 。

A. y && „y‟

B. x==y && y!=z

C. x||y+z && y-z

D. !(x

14. D

若有变量定义:int a[4], *p=a; 则以下对数组a的元素不正确的引用是_____。

A. *a

B. *(p+1)

C. p[1]

D. a[4]

15. C

设有以下结构体定义及初始化,表达式(stu[0].score+stu[1].score)/2的结果是_______。

struct student

{

int num;

float score;

} stu[2]={90,91.5,93,92.5};

A. 91.0

B. 91.5

C. 92.0

D. 92.5

二、填充题(共 26 分,每题 2分)

1、表达式strlen (“C2009”) 的值是___5___

2、设a=2,b=3,x=3.5,y=2.5, 表达式(float)(a+b)/2+(int)x%2/4 的值为 2.5

3、下面这些运算符中 :%, /, + ,* ,要求运算量是整型的是 %

4、已知: int i=0, j=10, k; 完成 下列循环后,k的 值是 10

for ( ;i<=j; i++,j--) k=i+j;

5、已知:int a=5; ,计算表达式 a-=a*=a+=a/a 后,变量 a的值 是 0

6、已知:int a=2; ,表达式 a%2+(a=5) 的值 是 5

7、下列运算符中: !, +=, &&, %=, || , 优先级相同的是 +=, %=

8、已知 : int a=1, b=0, c=1; 计算表达式 !b||++a&&++c的值后,c的值是 1

9、下列函数 fun() 被调用了 3次,a的值 是 4

fun()

{

static int a=1;

++a;

}

10、在下列调用函数中,实参的个数是 3

fun( a1, (a2,a3),(a4,a5,a6));

11、下列结构变量 m的成员 a 的表示应该是 m.a

struct xy

{

int a;

double b;

}m;

12、已知: char a[]=”abcde”,*p=a; 表达式 *(p+5)的值 为 „\0‟

13、函数double fun(double x,int n) 的功能是计算xn,则调用fun函数计算 m=a4+b4-(a+b)3的函数调用语句为 m=fun(a,4)+fun(b,4)-fun(a+b,3) 。

三、程序填空(共 30分,每空 3分 )

1. 程序完成以下功能:对x=1,2,...,10,求函数f(x)=x-10cos(x)-5sin(x)的最大值,并将该值写到新建文件data.txt中。

#include

#include

void main()

{ FILE *p;

float f(float),max,x;

if((p=fopen("_______ ","w"))==NULL) //答案:data.txt

{ printf("cannot open FILE\n"); exit(0); }

max=f(1);

for(x=2;x<=10;x++)

if(______

max=f(x);

fprintf(p,"%.3f",max);

fclose(_______); //答案:p

}

float f(float x)

{ _______; //答案:double y 或 float y

y=x-10*cos(x)-5*sin(x);

return y;

}

2. 查找100至999之间所有符合以下条件的数:它是另一数的平方,且至少有两位数是相同的。如数144,它是12的平方,其中有两位4。

int main()

{

int n,m,a,b,c;

for ( n = 10; n <= 31; n++ )

{

___________________ //答案:m = n*n;

a=m%10;

b = m / 10 % 10;

c = m / 100 % 10;

___________________ //答案: if ( a= =b || b= =c || a= =c )

printf( "%d ", m );

}

return 0;

}

3. 函数 void fun(float *sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回。要求n通过形参传入,n>=0。请填空。

121...7151311nS

void fun(float *sn,int n)

{

float s=0.0,w,f= -1.0;

int i=0;

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

{

f= *f; //答案:-1

w=f/(2*i+1);

s+=w;

}

=s; //答案: *sn

}

4. 统计字符换str中字符'#'与数字字符的个数。

#include

#include

main()

{

char str[81];

___________________ //答案: int n1=0,n2=0;

gets(str);