上海理工大学c语言复习卷以及答案.docx

上传人:b****8 文档编号:11451110 上传时间:2023-03-01 格式:DOCX 页数:13 大小:33.88KB
下载 相关 举报
上海理工大学c语言复习卷以及答案.docx_第1页
第1页 / 共13页
上海理工大学c语言复习卷以及答案.docx_第2页
第2页 / 共13页
上海理工大学c语言复习卷以及答案.docx_第3页
第3页 / 共13页
上海理工大学c语言复习卷以及答案.docx_第4页
第4页 / 共13页
上海理工大学c语言复习卷以及答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

上海理工大学c语言复习卷以及答案.docx

《上海理工大学c语言复习卷以及答案.docx》由会员分享,可在线阅读,更多相关《上海理工大学c语言复习卷以及答案.docx(13页珍藏版)》请在冰豆网上搜索。

上海理工大学c语言复习卷以及答案.docx

上海理工大学c语言复习卷以及答案

上海理工大学c语言复习卷以及答案

参考解答一、单选题

1.以下C程序中预处理命令写法正确的是:

D。

[知识点:

编译预处理命令]

A.#include“studio.h”

B.#include[stdio.h]

C.#include{stdio.h}

D.#include“stdio.h”

2.执行下列语句序列后,不可能出现的运行结果是___C____。

[知识点:

开关语句]

intn;

scanf("%d",&n);

switch(n)

{

case1:

case2:

putchar('X');

case3:

case4:

putchar('Y');break;default:

putchar('Z');A.显示:

z

B.显示:

xy

C.显示:

x

D.显示:

y

3.设a,b为整型变量,且二者均不为0,以下关系表达式中恒成立的是___C___。

[知识点:

运算与数据类型]

A.a/b*b/a==1

B.a/b*b==a

C.a*b/a==b

D.a*b/a*b==1

4.设有定义:

intx=10,y=20,z=30;则执行下列语句后的结果是___B____。

[知

识点:

if语句]

if(x>y)z=x;

x=y;y=z;

printf("%d,%d,%d",x,y,z);A.20,30,20

B.20,30,30

C.20,30,10

D.10,20,30

5.下列程序的输出结果是__B____。

[知识点:

整型常量的表示和自增运算]main()

{

inta=011;

printf("%d\n",++a);}

A.9

B.10

C.11

D.12

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

[知识点:

关系、逻辑运算]

A.!

(x

z||1

B.x==y&&y!

=z

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

D.y&&’y’

7.以下所列的各函数声明中,正确的是___D___。

[知识点:

函数声明]A.subplay(aasinteger,basinteger)B.voidplay(vara:

Integer,varb:

Integer)C.voidplay(inta,b)

D.voidplay(inta,intb)

8.表达式!

x等价于__B____。

[知识点:

关系运算]

A.x==1

B.x==0

C.x!

=0

D.x!

=1

9.设有定义inta[10];则合法数组元素的下标范围为__B___。

[知识点:

数组定义]

A.1至10

B.0至9

C.1至9

D.0至10

10.若有数组定义语句:

inta[3][2];则t数组最后一个元素是:

D。

[知识点:

二维数组定义]

A.a[3][2]

B.a[2][3]

C.a[2]

D.a[2][1]

二、程序调试题

1.程序调试题1(D_2_1.C)

调试要求:

下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。

将结果(包括D_2_1.c文件和D_2_1.exe文件)保存到指定目录中。

功能说明:

以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。

如输入:

-354

则输出:

sumx=18

例示说明:

-3为首项,5为公差,4为项数,前4项之和为18原程序(见素材\D_2_1.C):

#include

#include

intsumx(inta0,d,n)

{

inti,k,s=0;

k=a0;

for(i=0;i

s+=k;

k+=d;(return要放在花括号的后面)

returns;

}

voidmain()

{

inta0,d,n;

scanf("%d%d%d",&a0,&d,&n);

printf("sumx=%d\n",sumx(a0,d,n));}

答案:

#include

#include

intsumx(inta0,intd,intn)

{

inti,k,s=0;

k=a0;

for(i=0;i

{s+=k;

k+=d;}

returns;

}

voidmain()

{

inta0,d,n;

scanf("%d%d%d",&a0,&d,&n);

printf("sumx=%d\n",sumx(a0,d,n));

system("pause");

}

2.程序调试题2(D_2_2.C)

调试要求:

下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。

将结果(包括D_2_2.c

文件和D_2_2.exe文件)保存到指定目录中。

功能说明:

以下函数length返回字符串中字母A到字母Z所包含字符的长度。

主程序输入一行字符串,调用length函数输出该字符串中大写字母A到Z的子串长度。

如输入:

Z2009-AShanghaiZ

则输出:

Length=8

例示说明:

从A到Z的子串为Shanghai,其长度为8原程序(见素材\D_2_2.C):

#include#includeintlength(charp[]){

charq[100],r[100];

inti,j,k;

for(i=0;p[i]='A';i++)

;

for(j=i+1;p[j]!

='\0'&&p[j]!

='Z';j++)

;

returnj-i;

}

voidmain()

{

charstr[81];

intn;

gets(str[0]);

n=length(str);

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

system("pause");

}

答案:

#include#includeintlength(charp[]){

inti,j;

for(i=0;p[i]!

='A';i++);

for(j=i+1;p[j]!

='\0'&&p[j]!

='Z';j++);

returnj-i-1;

}

voidmain()

{

charstr[81];

intn;

gets(str);

n=length(str);

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

system("pause");

}

三、程序填空题

1.以下程序输入一个10进制整数,转换为16进制,计算16进制的各个位数,

并从高位到低位依次输出。

如输入:

687

则输出:

2AF

例示说明:

10进制687等于16进制2AF,输出时2、A、F中间包含空格

源程序(见素材\T_3_1.C):

#include

#includevoidmain()

{

inta[10],i,n;

scanf("%d",&n);

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

{

a[i]=____1____;

n/=16;

}

for(i--;____2____;____3____)

printf("%X",a[i]);}

答案:

#include

#include

voidmain()

{

inta[10],i,n;

scanf("%d",&n);

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

{

a[i]=n%16;

n/=16;

}

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

printf("%X",a[i]);

system("pause");

}

2.以下程序输入n和n个大于1的正整数,输出其中素数。

如输入:

51993113715

则输出:

191137

例示说明:

先输入n为5,再输入5个正整数,输出5个整数中的素数

源程序(见素材\T_3_2.C):

#include

#includevoidmain()

{

intn,a,i,j,ct;

scanf("%d",&n);

for(i=0;____1____;i++)

{

______2______;

scanf("%d",&a);

for(j=2;j

if(____3____)

ct++;

if(ct==0)

printf("%d",a);

}

printf("\n");

}

答案:

#include

#includevoidmain()

{

intn,a,i,j,ct;

scanf("%d",&n);

for(i=0;i

{

ct=0;

scanf("%d",&a);

for(j=2;j

if(a%j==0)

ct++;

if(ct==0)

printf("%d",a);

}

printf("\n");

system("pause");

}

四、编程题

1(编程题1(B_4_1.C)

编程要求:

请按题中的功能要求,编写程序并能得到正确的结果。

将结果(包括

B_4_1.C文件和B_4_1.exe文件)保存到“\实验结果”文件夹中。

功能说明:

键盘输入5个整数,按由小到大的顺序排序后输出。

如输入:

10020,531

则输出:

50102031

答案:

#include"stdio.h"

#include

voidSelectSort(intv[],intn){inti,j,k,temp;

for(i=0;i

{intk=i;//k存放最小记录位置

for(j=i+1;j

{if(v[j]

if(k!

=i)//交换第i和第k个位置记录

{temp=v[i];v[i]=v[k];v[k]=temp;

}

}

}

voidmain()

{

inta[10],i,n;

printf("inputnumberofdata\n");

scanf("%d",&n);

for(i=0;i

{

printf("input%ddata\n",i+1);

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

}

SelectSort(a,n);

for(i=0;i

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

printf("\n");

system("pause");

}

2(编程题2(B_4_2.C)

编程要求:

请按题中的功能要求,编写程序并能得到正确的结果。

将结果(包括

B_4_2.C文件和B_4_2.exe文件)保存到“\实验结果”文件夹中。

111n,1,,,,,11,,n23功能说明:

键盘输入正整数n,计算并输出的值,输出结l

则输出:

0.645635

答案:

#include<.stdio.h>Mian()

Floats;

For(i=1;i<=n,i++){If(i/2==0)

S+=-1.0/n;

Else

S+=1.0/n

}

Printf("%1f",s);}

#include#includevoidmain()

{

inti=1,n;

doublef=1.0,s=0;

printf("inputitemnumber:

\n");

scanf("%d",&n);

do

{

s+=f/i++;//或:

s=s+f/i;i++;

f=-f;

}while(i<=n);

printf("1-1/2+1/3-...+1/%d=%lf\n",n,s);

system("pause");

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1