上海2023年计算机二级C语言考试模拟题

发布 2023-04-20 22:49:28 阅读 3877

一、单选题。

1. 以下正确的语句是。

a. long b[2][3] =

b. int a[1][4] =

c. float x[3]

d. double y[3] =

2. 循环语句中,break的作用是___

a. 结束本次循环。

b. 从本循环体内跳出。

c. 跳出子函数。

d. 终止程序运行。

3. 有如下函数调用语句,则可以判断该函数的参数个数是___

func(rec1, rec2+rec3, (rec4, rec5));

a. 5b. 4

c. 3d. 有语法错误。

4. 下列程序段的输出结果为().

int x=3, y=2;

printf("%d", x*=y+8/5);

a. 9b. 7

c. 1d. 5

5. 设要定义n为整型变量,定义x为浮点型变量,正确的语句是:

a. int n;float x;

b. int n,float x,c. int n,float x;

d. int n;float x,6. 若有数组定义并初始化语句:char a1=char a2=pro〞 ;那么下列说法中正确的是。

a. a1和a2不同,a2的存储单元的数目多。

b. a1和a2不同,a1是指针。

c. a1和a2的存储单元的数目相同。

d. a1和a2完全相同。

7. 设有int n; 从键盘上输入整数给变量n,正确的语句是:

a. scanf( n );

b. scanf(“%d”,&n);

c. scanf( “n” )

d. scanf(“%d”,n);

8. 假定建立了以下链表结构,如图所示。指针p指向如图所示的结点,t为与data同类型的数据变量,则交换p所指向的结点和该结点的下一个结点的数据的语句为:t=p->data

a. p->next->data = t;p->data = p->next->data;

b. p->data = p->next->data; p->next->data = t;

c. p->data-> t;p->data = p->data;

d. p->next->data = p->data; p->next = t;

9. 下面的for 语句执行时,__将形成无限循环。

a. for(s=j=0; j<100; j+=1) s+=j;

b. for(s=j=0; j<100; j+1) s+=j;

c. for(s=j=0; j<100; j++)s+=j;

d. for(s=j=0; j<100; +j) s+=j;

10. 若要打开a盘上根下user子目录下名为的文本文件进行读、写操作,下面符合此要求的函数调用是().

a. fopen(“a:\user\

b. fopen(“a:\\user\\

c. fopen(“a:\user\

d. fopen(“a:\\user\\

11. 执行以下**段后,a的值为().

a. 1b. 2

c. 3d. 不确定。

12. 若有以下定义,则能打印出字母‘l’的语句是 。

struct personc[10]=,p=&a[0];

a. printf(“%c”,c[3].name);

b. printf(“%c”,c[2].name[1]);

c. printf(“%c”,c[2].name[0]);

d. printf(“%c”,c[3].name[1]);

13. 执行以下程序段后,m的值是 。

int a=

int m=10,k,*ptr=a;

for(k=0;k<5;k++)m+=*ptr+k);

a. 24b. 25

c. 26d. 23

14. 要判断char型变量m是否是数字,可以使用表达式。

a. m>=’0’ &m<=’9’

b. ’0’<=m <=9’

c. 0<=m &&m<=9

d. 0<=m &&m<=9

15. c 语言程序中可以对程序进行注释,注释部分必须用符号___

a. /和 */

b. *和 /*

c. d. [和 ]

二、程序填空题。

1. 输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。

运行示例:输入字符串: abcabc23+45#

各类字符个数:letter=6, digit=4, other=2

源程序:#include <>

void main( )

int digit, letter, other;

char __1___

digit = letter = 0;

other = 2___

printf("输入字符串: "

2. 输入一个整数,逆序后输出。函数reverse(int number)的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。

运行示例:输入整数: -1230

逆序后: -321

源程序:#include <>

#include <>

int reverse(int);

void main( )

int in;

printf("输入整数:")

scanf("%d", in);

m = 3. 程序运行时,输入整数n(01

源程序:#include <>

void main()

int i,j,n;

scanf("%d", n);

for(i=1; _1___i++)

pi=4*pi

printf("pi=%f",pi);

getch();

2. 程序调试题2(b_2_

调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括b_2_文件和b_2_文件)保存到目录c:

\ks\中。

功能说明:从键盘输入一个十进制整数n,转化成二进制存入数组a,输出二进制结果。

如输入:23 则输出:10111

又输入:1234 则输出:10011010010

带错误原程序(见c:\ks\b_2_

#include <>

main()

int a[16],n;

scanf("%d",&n);

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

while(i>0)

printf("%d",a[--i]);

getch();

3. 程序调试题3(b_2_

调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括b_2_文件和b_2_文件)保存到目录c:

\ks\中。

功能说明:程序从键盘输入一行字符串,所有字符依次向右循环移动m个位置并输出,移出的字符循环到最左边。如输入:

则输出:

带错误原程序(见c:\ks\b_2_

#include <>

#include <>

void shift_s(char a,int n,int m) /a数组的n个字符右移m个位置*/

int i,j,t;

for(i=1;i

a[n]='0';

main()

char stra[80];

int i, n,m;

计算机二级C语言真题分析

2011年3月二级c笔试真题分析。一 试题难度。自2008年初二级c考试大纲做出重大修改以来,已经进行了7次考试。由于上机考试采用从题库随机抽题的形式,每次题库内容只做少量增删,所以难度基本稳定。笔试采用统一命题的形式。如果把笔试真题的难度系数从0 最易 至10 最难 分级,那么这7次笔试的难度可以...

计算机二级C语言考试重点,难点总结

c 语言最重要的知识点复习资料。笔试注意事项。1 笔试满分100分,共两大题,选择70分40小题,填空30分15小题。c语言占70分,公共基础占30分。选择题的前10题和填空题的前5题考公共基础知识,其他考知识。c语言笔试时间为2011年3月26日上午9 00 10 30。2 选择用铅笔涂答题卡,填...

计算机等考二级C语言模拟试题

一。单项选择题。1.设int x 1,y 1 表达式 x y 的值是 a.0b.1c.b.int a 2 c.int a 2 2 2,3 d.int a 2 6.程序段的功能是将变量u s中的最大值赋给变量t。a.if u s t u t s b.t u if t t s c.if u s t s ...