电大《C语言》专升本期末模拟试题B

时间:2024-04-27 18:20:54 5A范文网 浏览: 复习资料 我要投稿

一、单项选择题(每题2分,共30分)

1.下面的四个选项中,均不是合法的用户标识符的选项是( B    )

A.  B             B. b-a       C.  float         D.  _123

M_0            goto           2ab            temp

while            int            _A             INT

2.有输入语句:scanf(“a=%d, b=%d, c=%d”, &a, &b, &c);为使变量a,b,c的值分别为1,3,2,从键盘上输入数据的正确形式应当是(  B      )

A.132 〈回车〉                  B.a=1,b=3,c=2〈回车〉

C.a=1 b=3 c=a  <回车>            D.1,3,2 〈回车〉

3.如果输入信息为:1234567   则执行语句:scanf("%2d%2d",&x,&y); 之后,x,y的值为(  A   )

A. x为12,y为34                 B. x为2,y为3

C. x为12,y为67                 D.x为1234567,y为0

4.对于 for(表达式1;表达式2 ;表达式3) 语句的正确描述( B  )

A.表达式2省略,循环不执行。

B.表达式3省略,可在循环体中修改循环控制变量,以保证正常退出。

C.三个表达式均不能省略。

D.三个表达式均不能省略。但分号可以省略。

5.以下叙述中错误的是( B   )。

A.循环语句嵌套必须是同类型的语句

B.循环语句嵌套可以是同类型的语句,也可以不同类型

C.do_while循环语句和 while循环语句的程序执行方式都是相同的。

D.循环体中不能再有循环语句

6.有下面的程序段:

char  a[ 3 ], b[  ] =”student”;

a=b;

printf (“ %s”,a);

则(    D   )

A.运行后将输出student ;           C.运行后将输出b;

B.运行后将输出a                 D.编译出错  

7.当数组作函数参数时,选出不正确的描述。( D )

A.实参数组与形参数组类型应一致。

B.数组元素做函数实参时,同变量做实参一样是参数传值。

C.形参数组可以不定义数组大小。

D.实参数组与形参数组大小必须一致,否则C编译会检查出错。

8.在C语言中,函数返回值的类型最终取决于(     A      )。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

9.若有说明 int (*p)[3]; 则以下正确的描述( B )

A. p是一个指针数组。

B. p 是一个指针,它只能指向一个包含3个int类型元素的数组。

C. p是一个指针,它可以指向一个一维数组中的任意元素。

D. (*p)[3]与*p[3]等价。

10. 已知int b; 则对指针变量p正确的说明和初始化是:(   4    )

A. int *p=b;    B. int p=b;    C. int p=&b;     D. int *p=&b;

11.若已定义了如下的共用体类型变量x,则x所占用的内存字节数为( C  )

(设在16位pc机的环境下)

union data

{ int i;

char ch;

double f; }x;

A. 7        B. 11   C. 8         D. 10

12.设fp为指向某二进制文件的指针,且已经读到此文件末尾,则函数feof(fp)的返回值为(   B     )。

A.EOF      B.非0值         C.0         D.NULL

13. C语言程序中,main函数的位置(   D     )。

A.在开头 B.在结尾 C.在中间 D.可以任意

14. int x=3; if(1<=2)if(0)x=4;else x=5;else x=6; 执行上述语句后x的值是(   C    ).

A.3         B.4        C.           D.6

15. 以下叙述正确的是(   C  )

A.goto语句只能用于退出多层循环。

B.可以用continue语句来终止switch语句的执行。

C.break语句只能用在循环体内和switch语句体中。

D.在循环内使用break语句和continue语句的作用相同。

二、判断题(每题10分,共10分)

(   × )1.若有代数式x2÷(3x+5), 则正确的C语言表达式为:x*x/3*x+5。

(  √  )2.开发一个c语言的源程序要经过的四个阶段编辑、编译、连接,程序运行。

(   ×  )3.int i=5, j, k; j=i++; k=i; 则 k的值为5。

(   ×)4.已知:int s[][3]={1,2,3,4,5,6}; 此时数组元素s[1][1]的值为1。

(  √ )5.字符串“hello”占用内存6字节。

(  √ )6. C语言中,注释可以出现在源程序中空格可以出现的任何位置。

(   ×)7. 强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。

(×  )8. 在C语言程序中,每个函数必须要有且只能有一个return语句。

(√  )9. 枚举类型变量只能取枚举定义中的枚举常量。

(√  )10. 联合类型是同一个存储空间,可以被几个不同数据类型的分量成员共享使用。

三、分析程序给出运行结果(每题5分,共25分)

1.执行下面程序之后,m的值为多少。

#include<stdio.h>

main()

{  static int a[2][3]={{1,2,3},{4,5,6}};

int m;

m=*(*(a+1)+1);

m=m*a[1][1];

printf("%d",m);

return 0;

}

答案:25

2.分析下面程序的运行结果。

#include<stdio.h>

main()

{   int i=1;

while(i<=10)

{  if (!(i%2)) printf("%d,",i);

i++;

}

}

答案:2,4,6,8,10

3.分析下面程序的运行结果。

#include<stdio.h>

main()

{char s[]="456789";

s[4]='/0';

printf("%s/n",s);

}

答案:4567

}

4. #include <stdio.h>

void main()

{   int a=2;

switch(a)

{       case 2:

case 3:a++;

case 4:a++;

default:a+=10;

}

printf("a=%d/n",a);

}

答案:a=14

 

5.分析下面程序的运行结果。

#include <stdio.h>

int f(int a);

int main()

{ int f(int);

int a=5,i;

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

{

printf("%d ", f(a));

}

return 0;

}

int f(int a)

{ auto  int b=0;

static int c=3;

b = b+1;

c = c+1;

return (a+b+c);

}

答案:10 11 12

四、完善程序填空题(每题5分,共15分)

1. 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位整数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。

答:

#include <stdio.h>

void main()

{  int i,j,k,n;

printf("Narcissus number are: ");

for(n=100;n<1000     ;n++)

{    i=n/100;

j=n/10-i*10;

k=n%10;

if(n==      i*i*i+j*j*j+k*k*k      )

printf("%5d",n);

}

printf("/n");

}

2. 将原文件file1.c的内容读出并显示, 同时将其内容写入file2.c文件中。

#include<stdio.h>

main()

{   FILE *fp1,*fp2;

fp1=fopen("file1.c",    "r"   );

fp2=fopen("file2.c","w");

while(!feof(fp1))

putchar(getc(fp1));

rewind(fp1);

while(!feof(fp1))

putc(     getc(fp1)     ,fp2);

fclose(fp1);fclose(fp2);

}

3.用冒泡法对10个整数排序。

#include <stdio.h>  

int main()

{ int a[10];

int i,j,t;

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

{

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

}

for(j=0;j<9;j++)

{ for(i=0;i<9-j;i++)

{

if (a[i] > a[i+1])

{

t = a[i];

a[i] = a[i+1];

a[i+1] = t;

}

}

}

 

五、编程题 (每题10分,共20分)

1. 请编制程序实现:从键盘输入一个字符串,将该字符串s中所有的字符c删除。

答:编程如下:

#include<stdio.h>

main()

{   char s[80];

int i,j;

gets(s);

for(i=j=0;s[i]!='/0';i++)

if(s[i]!='c')

s[j++]=s[i];

s[j]=’/0’;

puts(s);

}

2. 编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他符的个数,在主函数中输入字符串以及输出上述的结果。

答:编程如下:

#include "stdio.h"  

int n=0,m=0,k=0,o=0;  //外部变量

void test(char str[]);

main()

{

char a[80];

printf("input string:");

gets( a);

test(a);

printf("/n字母数=%d 数字数=%d 空格数=%d  其他字符数%d/n",n,m,k,o);

return 0;

}

void test(str)

char str[];

{ int i;

for(i=0;str[i]!= '/0';i++)

{ if(str[i]>='a'&&str[i]<='z'|| str[i]>='A'&&str[i]<='Z')

n++;  //n为字母数

else if( str[i]>='0'&&str[i]<='9')

m++;  //m为数字

else if(str[i]==' ')

k++;    //k为空格

else o++;   //统计总字符数

}

}  

 


来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

相关文章:

期货公司申请金融期货结算业务资格,应当向中国证券监督04-27

电大《初级会计》期末复习资料(解析)04-27

期货公司停业的,应当向中国证券监督管理委员会提交的材04-27

下列关于期货公司首席风险官报告义务的表述,正确的有()。04-27

高一年级必修二生物知识点04-27

国内某出口企业3个月后将收到一笔日元出口货款,则可用04-27

高一数学上册教案范例5篇04-27

高一年级语文必修三知识点总结04-27

外汇期权合约中规定卖出的货币,其利率越高,期权持有者在04-27

高一年级必修二物理知识点04-27

热搜文章
最新文章