程序设计基础期末样题 最新版本

更新时间:2023-04-20 08:46:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单项选择

============================================ ======

题号:23095

任何一个C语言的可执行程序都是从()开始执行的.

A、main()函数的入口处

B、程序中的第一条语句

C、程序中的第一个函数

D、编译预处理语句

答案:

A

题号:23285

C语言程序的三种基本结构是顺序结构,选择结构和()结构.

A、循环

B、转移

C、递归

D、嵌套

答案:

A

题号:23286

C语言中,定义结构体的保留字是().

A、enum

B、union

C、struct

D、typedef

答案:

C

题号:23333

程序流程图PFD中的"□"代表的是().

A、控制流

B、加工步骤

C、数据流

D、组成关系

编辑版word

答案:

B

题号:23161

C语言中,下列叙述正确的是().

A、do-while 语句构成的循环不可用

B、do-while 语句构成的循环,没有break语句就是死循环

C、do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环

D、do-while 语句构成的循环,当while 语句中的表达式值为非零时跳出循环答案:

C

题号:23405

以下不能正确进行字符串赋初值的语句是().

A、char *str="good!";

B、char str[5]={'g','o','o','d',0};

C、char str[5]="good!";---超界

D、char str[]="good!";

答案:

C

题号:23400

下述错误的C语言常量是().

A、5.

B、.25

C、0xf

D、090

答案:

D

题号:23577

以下对C语言中联合类型数据的正确叙述是().

A、定义了联合变量后,即可引用该变量或该变量中的任意成员

B、一个联合变量中可以同时存放其所有成员

C、在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变

编辑版word

D、联合中的各个成员使用共同的存储区域

答案:

D

题号:23584

如已定义x和y为double 类型,则表达式x=1,y=x+5/2的值是().

A、3.0

B、3.5

C、2

D、3

答案:

A

题号:23493

有以下程序:

#include

main()

{int a1,a2;char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

printf("%d,%c,%d,%c",a1,c1,a2,c2);

}

若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是以下代表空格,代表回车.

A、12,a,34,b

B、12 a34 b

C、12 a 34]b

D、12a34b

答案:

D

题号:24158

关于%-m.nf格式符,下列描述中,正确的是().

A、字符"-"表示在输出字符前面加上字符"-".

B、字符"-"表示输出字符靠左对齐.

C、字符"-"表示在输出字符最后加上字符"-".

D、字符"-"表示输出字符靠右对齐.

答案:

B

编辑版word

题号:23674

下面程序的输出结果是().

main()

{int i=2,p;

p=f(i,i+1);

printf("%d",p);

}

int f(int a,int b)

{int c;

c=a;

if(a>b)c=1;

else if(a==b)c=0;

else c=-1;

return c;

}

A、0

B、1

C、2

D、-1

答案:

D

题号:23833

在数据库设计中,将E-R图转换成关系数据模型的过程属于().

A、物理设计阶段

B、需求分析阶段

C、逻辑设计阶段

D、概念设计阶段

答案:

C

题号:23779

已有声明"int x=5,y;float z=2;",则以下表达式语法正确的是().

A、x>0? y=x:y=-x

B、y=x/2=z

C、y=x=z/2

编辑版word

D、y=x%z

答案:

C

题号:23735

关系表中的每一横行称为一个.

A、元组

B、字段

C、行

D、码

答案:

A

题号:24289

若有int i=0;,则以下程序段中,while 循环的循环次数是() while(i<10)

{

if(i<1)continue;

if(i==5)break;

i++;

}

A、6

B、死循环,不能确定次数

C、1

D、4

答案:

B

题号:24605

以下不是无限循环的语句为().

A、while(1){x++;}

B、for(i=10;;i--)sum+=i;

C、for(y=0,x=1;x>++y;x=i++)i=x;

D、for(;;x++=i);

答案:

C

编辑版word

题号:24655

下面程序的功能是将从键盘输入的一对数,由小到大排序输出.当输入一对相等数时结束循环.请选择.

#include

void main()

{int a,b,t;

scanf("%d%d",&a,&b);

while()

{if(a>b)

{t=a;a=b;b=t;}

printf("%d,%d\n",a,b);

scanf("%d%d",&a,&b);

}

}

A、!a=b

B、a=b

C、a !=b

D、a==b

答案:

C

题号:24192

请阅读以下程序:

#include

main()

{ int x=1,y=0,a=0,b=0;

switch(x)

{ case 1:

switch(y)

{ case 0:a++; break;

case 1:b++; break;

}

case 2:

a++;b++; break;

}

printf("a=%d,b=%d\n",a,b);

}

上面程序的输出结果是().

A、a=1,b=1

编辑版word

B、a=2,b=2

C、a=2,b=1

D、a=1,b=0

答案:

C

题号:24329

有以下程序:

#include

int a=1;

int f(int c)

{static int a=2;

c=c+1;

return (a++)+c;

}

main()

{int i,k=0;

for(i=0;i<2;i++){int a=3;k+=f(a);}

k+=a;

printf("%d\n",k);

}

程序的运行结果是().

A、15

B、14

C、程序不正确,无法编译

D、16

答案:

B

题号:24750

设有数组定义:char array[]="China";,则数组array所占的空间为().

A、5个字节

B、4个字节

C、6个字节

D、7个字节

答案:

C

编辑版word

题号:24979

有以下程序:

#include

#include

main(){char a[10]="abcd";

printf("%d,%d\n",strlena,sizeofa);

}

程序运行后的输出结果是().

A、8,8

B、10,10

C、7,4

D、4,10

答案:

D

题号:24996

下面程序的输出结果是().

#include

#include

main()

{ char p1[]="WHO",p2[]="who",str[50]="xyz";

strcpy(str+1,strcat(p1,p2));

printf("%s",str);}

A、zWHOwho

B、zWHOwho

C、xWHOwho

D、xyzWHOwho

答案:

C

题号:24949

有以下程序:

#include

main()

{ int aa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}}; int i,s=0;

编辑版word

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

s+=aa[i][2];

printf("%d",s);

}

程序运行后的输出结果是().

A、19

B、10

C、26

D、20

答案:

A

题号:24888

语句printf"%d\n",strlen"msn\t\01\\\t";的输出结果有几个字符.

A、10

B、6

C、9

D、7

答案:

D

题号:25059

有以下程序:

#include

main()

{char s[]="012xy\08s34f4w2";

int i,n=0;

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

if(s[i]>='0'&&s[i]<='9')n++;

printf("%d\n",n);

}

程序运行后的输出结果是().

A、8

B、7

C、3

D、0

编辑版word

答案:

C

题号:24935

以下能正确定义数组并正确赋初值的语句是().

A、int d[3][2]={{1,2},{34}};

B、int c[4][]={{1,2},{3,4}};

C、int b[1][3]={{1},{3}};

D、int a=1,b[a][a];

答案:

A

题号:24981

以下程序的输出结果是().

void change int k[]{k[0]=k[5];}

main(){int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;

while(n<=4){change&x[n];n++;}

for(n=0;n<5;n++)printf("%d",x[n]);

printf("\n");

}

A、13579

B、62345

C、12345

D、678910

答案:

D

题号:25123

以下对数组初始化错误的是().

A、int a[2][3]={{1,2,3},{4,5}}

B、int a[2][3]={1,2,3,4};

C、int[2][]={1,2,3,4,5,6};

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

答案:

C

编辑版word

题号:25050

若有如下说明,且int类型占两个字节,则正确的叙述为().

struct st

{ int a;

int b[2];

}a;

A、程序运行时为结构体st分配8字节存储单元

B、程序只在执行到该结构体时才为结构体st分配存储单元

C、结构体变量a与结构体成员a同名,定义是合法的

D、类型名struct st可以通过extern关键字提前引用

答案:

C

题号:25530

下列不能正确计算代数式值的C语言表达式是().

A、1/3.0*pow(sin(1.0/2),2)

B、pow(sin(0.5),2)/3

C、1/3 *sin(1/2)*sin(1/2)

D、sin(0.5)*sin(0.5)/3

答案:

C

题号:25543

已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是().

A、c<=("'z''"-32)&&("'a'"-32)<=c

B、isupper(c)

C、A'"<=c&&c<="'Z'

D、A'"<=c<="'Z'

答案:

D

题号:26457

编辑版word

以下程序段中与语句:k=a>b?b>c?1:0:0;功能相同的是().

A、if(a<=b)k=0;else if(b<=c)k=1;

B、if((a>b)‖(b>c))k=1;else k=0;

C、if((a>b)&&(b>c))k=1;else k=0;

D、if(a>b)k=1;else if(b>c)k=1;else k=0;

答案:

C

题号:25404

若变量x,y已正确定义并赋值,以下符合C语言语法的表达式是().

A、++x,y=x--

B、x+1=y

C、double(x)/10

D、x=x+10=x+y

答案:

A

题号:26092

调用函数时,基本类型变量做函数参数,实参和对应的形参().

A、同名时才能共用存储单元

B、各自占用独立的存储单元

C、不占用存储单元

D、共占用一个存储单元

答案:

B

程序设计

============================================ ======

题号:32147

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:求小于lim的所有素数并放在aa数组中,该函数返回

编辑版word

所求出素数的个数。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include "stdio.h"

#include "conio.h"

#define MAX 100

int fun(int lim,int aa[MAX])

{

/*********Begin**********/

/********** End **********/

}

main()

{

int limit,i,sum;

int aa[MAX];

void NONO();

printf("Please Input aInteger:");

scanf("%d",&limit);

sum=fun(limit,aa);

for(i=0;i

if(i%10==0&&i!=0) printf("\n");

printf("%5d",aa[i]);

}

NONO();

}

void NONO()

{

int i,j,array[100],sum,lim;

FILE *rf, *wf ;

rf = fopen("in.dat", "r") ;

编辑版word

wf = fopen("out.dat", "w") ;

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

{

fscanf(rf, "%d", &lim);

sum=fun(lim,array);

for(i=0;i

fprintf(wf, "%7d", array[i]);

fprintf(wf, "\n");

}

fclose(rf);

fclose(wf);

}

示例代码:

int n=0,i,j;

for(i=2;i<=lim;i++)

{for(j=2;j

if(i%j==0) break;

if(j==i) aa[n++]=i;

}

return n;

程序填空

============================================ ======

题号:31799

/* 给定程序中,函数fun的功能是:

计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。

注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。

编辑版word

例如,若N=3,有下列矩阵:

1 2 3

4 5 6

7 8 9

fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!*/

#include

#define N 4

fun(int t[][N], int n)

{int i, sum;

/**********FILL**********/

___1___;

for(i=0; i

/**********FILL**********/

sum+=___2___ ;

for(i=0; i

编辑版word

/**********FILL**********/

sum+= t[i][n-i-___3___] ;

return sum;

}

main()

{int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42, 21,3,10},i,j;

printf("\nThe original data:\n");

for(i=0; i

{for(j=0; j

printf("\n");

}

printf("The result is: %d",fun(t,N));

}

答案:

位置1:

sum=0

位置2:

t[i][i]

位置3:

1

程序改错

============================================

编辑版word

======

题号:31952

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:从键盘输入的整数中找出最小值,输入负数时结束。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include "stdio.h"

main()

{

int min,a;

scanf("%d",&a);

min=a;

/**********ERROR**********/

while (a<0 )

{

/**********ERROR**********/

if(a>min) min=a;

scanf("%d",&a);

}

}

答案:

位置1:

while(a>=0)

位置2:

if(a

(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,

供参考,感谢您的配合和支持)

编辑版word

本文来源:https://www.bwwdw.com/article/x1jq.html

Top