文档库 最新最全的文档下载
当前位置:文档库 › 大连理工大学c语言上机模拟题1

大连理工大学c语言上机模拟题1

大连理工大学c语言上机模拟题1
大连理工大学c语言上机模拟题1

A1.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用

八进制表示的字符常量'\101'是()。

A、字符A

B、字符a

C、字符e

D、非法的常量

C2.下列程序段的输出结果为()。 float k=0.8567; printf("%4.1f%%",k*100);

A、85.6%

B、85.6%%

C、85.7%

D、.857

A3.下面的scanf函数输入数据,使得a=10,b=15,s1='S',s2='s',x1=1.5,x2=-3.75,x3=67.8, 正确的键盘输入方法是( ).

(用"[CR]"表示回车,U表示空格)

main()

{int a,b;

float x1,x2,x3;

char s1,s2;

scanf("%5d%5d%c%c%f%f%*f%f",&a,&b,&s1,&s2,&x1,&x2,&x3);

}

A、10UUU15Ss1.5U-3.75U+1.5U67.8[CR]

B、10UUU15USUs1.5U-3.75U+1.5U67.8[CR]

C、10UUU15USUsU1.5U-3.75U+1.5U67.8[CR]

D、10UUU15Ss1.5U-3.75U+1.5,67.8[CR]

A4. C语言的if语句中,用作判断的表达式为( )。

A、任意表达式

B、算术表达式

C、逻辑表达式

D、关系表达式

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

main()

{int m=5;

if(m++>5) printf("%d\n",m);

else printf("%d\n",m--);

}

A、6

B、5

C、7

D、4

C6以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);()。

A、3次

B、循环次数不定

C、4次

D、是无限循环

B7.以下程序的执行结果是( )。

main()

{ int num = 0;

while( num <= 2 ) { num++; printf( "%d,",num ); } }

A、0,1,2

B、1,2,3,

C、1,2,3,4,

D、1,2,

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

A、char str[5]="good!";

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

C、char *str="good!";

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

D9.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。

A、将串str1复制到串str2中后再连接到串str3之后

B、将串str2连接到串str1之后再将串str1复制到串str3中

C、将串str1连接到串str2之后再复制到串str3之后

D、将串str2复制到串str1中后再将串str3连接到串str1之后

C10.以下函数的类型是( )。

fff(float x)

{

return 5;

}

A、void 类型

B、与参数x的类型相同

C、int类型

D、无法确定

A11.设有如下函数

fac(int x)

{

float y=1.0;

return(x*y);

}

则函数的类型为( ).

A、int型

B、float型

C、无法确定

D、void型

B12.设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为( ).

A、6.28

B、12.56

C、3.14

D、9.42

A13.下列关于指针定义的描述,错误的是()。

A、指针是一种变量,该变量用来存放某个变量的值

B、指针是一种变量,该变量用来存放某个变量的地址值

C、指针变量的类型与它所指向的变量类型一致

D、指针变量的命名规则与标识符相同

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

main()

{char str[ ]="ABCD",*p=str;printf("%d\n",*(p+3));}

A、68

B、不确定的值

C、字符D的地址

D、0

B15.对结构体类型的变量的成员的访问,无论成员是何种数据类型都可使用

的运算符是()。

A、&

B、.

C、*

D、->

N1.在C语言中,各种类型的整型数据在内存中都占2个字节。

N2. 若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

N3.格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.

N4. C语言程序中输入一个中间带有空格的字符串时,可以用scanf函数.

N5.设d=1,e=2,f=3,则逻辑表达式!(d+e)+f&&e+f*2的值为0.

Y6.已知a=4,b=2,c=3,d=5,表达式a>b?a:c

Y7.语句if(a>b) printf("%d",a); else printf("%d",b);可以用语句 printf("%d",a>b?a:b);取代.

Y8. 在do-while循环中,任何情况下都不能省略while.

N9. break语句能够终止当前进行的多层循环.

Y10. continue语句对于while和do-while循环来说,意味着转去计算While表达式.

N11.对静态变量的初始化不是在编译阶段完成的.

N12. gets 函数是用来输入一个字符的函数.

N13.设有数组定义: char array[ ]="hello"; 则数组 array所占的内存空间为5字节.

Y14.当全局变量与局部变量同名时,在局部变量的作用域范围之内,局部变量起作用.

N15. C语言中,通过函数调用只能获得一个返回值.

N16.数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.

Y17.被包含文件与其所在的文件(即用#include命令的源文件),在预编译后,成为同一个文件. Y18.如果需要向函数内传递多个值,用数组和用指针效果是一样的.

Y19.两个类型相同的结构体变量,可以互相赋值.

N20. C语言中,在打开文件时,必须说明文件的使用方式,"wb+"只能用于文件的写.

1.int x; x=-3+4%-5*3, 则x的值为_____. 9

2.下列语句输出的结果是_____. -1

unsigned int b=65535;printf("%d",b);

3. x=5,y=8时,c语言表达式5-2>=x-1<=y-2的值是_____ 1

4. 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____.

for (x=0,y=0;y!=123&&x<3;x++)

scanf ("%d",&y); 3

5. 连接字符串的函数是_____,只写函数名即可. Strcat

6.从函数的形式上看,函数分为无参函数和_____两种类型. 有参函数

7. 定义int *p,a[5];将数组a的首地址赋给指针变量p的语句是_____.

p=a

p=&a[0]

p=a;

p=&a[0];

8.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 _____。

struct stud { char name[10]; float s[4]; double ave; } a,*p; 34

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

【程序设计】

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

功能:编写函数fun(str,i,n),从字符串str中删除第i个

字符开始的连续n个字符(注意:str[0]代表字符串

的第一个字符)。

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

#include "stdio.h"

#include "string.h"

main()

{

char str[81];

int i,n;

void fun(char str[],int i,int n);

void TestFunc();

printf("请输入字符串str的值:\n");

scanf("%s",str);

printf("你输入的字符串str是:%s\n",str);

printf("请输入删除位置i和待删字符个数n的值:\n");

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

while (i+n-1>strlen(str))

{

printf("删除位置i和待删字符个数n的值错!请重新输入i和n的值\n");

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

}

fun(str,i,n);

printf("删除后的字符串str是:%s\n",str);

TestFunc();

}

void fun(char str[],int i,int n)

{

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

while(str[i+n-1])

{

str[i-1]=str[i+n-1];

i++;

}

str[i-1]='\0';

2

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

【程序设计】

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

功能:请编一个函数void fun(int tt[M][N],int pp[N]),

tt指向一个M行N列的二维数组,求出二维数组每列

中最小元素,并依次放入pp所指一维数组中。二维

数组中的数已在主函数中赋予。

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

#include "conio.h"

#include "stdio.h"

#define M 3

#define N 4

void fun(int tt[M][N],int pp[N])

{

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

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

}

main()

{

int t[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}}; void NONO();

int p[N],i,j,k;

printf("The original data is:\n");

for(i=0;i

{

for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nThe result is:\n");

for(k=0;k

printf("\n");

NONO();

}

void NONO()

{

int i,j, array[3][4],p[4];

FILE *rf, *wf ;

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

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

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

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

fscanf(rf, "%d", &array[i][j]);

fun(array,p);

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

{

fprintf(wf, "%7d", p[j]);

fprintf(wf, "\n");

}

fclose(rf) ;

fclose(wf) ;

}

int i,j;

for(j=0;j

{

pp[j]=tt[0][j];

for(i=1;i

if(tt[i][j]

pp[j]=tt[i][j];

}

/*------------------------------------------------------ 【程序改错】

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

功能:求1到20的阶乘的和。

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

#include "stdio.h"

void fun()

{

int n,j;

float s=0.0,t=1.0;

for(n=1;n<=20;n++)

{

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

s=1;

for(j=1;j<=n;j++)

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

t=t*n;

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

s+t=s;

}

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

printf("jiecheng=%d\n",s);

}

main()

{

fun();

}

【参考答案】

t=1;

t=1.0;

#include "string.h"

#include "conio.h"

int fun(char *str,char *substr)

{

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

int i,n=0

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

for(i=0;i<=strlen(str);i++)

if((str[i]==substr[0])&&(str[i+1]==substr[1])&&(str[i+2]==substr[2])) /**********ERROR**********/

++i;

return n;

}

main()

{

char str[81],substr[4];

int n;

printf("输入主字符串: ");

gets(str);

printf("输入子字符串: ");

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

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

}

【参考答案】

int i,n=0;

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

【程序填空】

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

功能:计算平均成绩并统计90分以上的人数,输入的成绩为负时程序结束。

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

#include "stdio.h"

main()

{

int n,m;float grade,average;

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

average=n=m=_____;

while(1)

{

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

scanf("%f",&grade);

if(_______) break;

n++;

average+=grade;

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

if(grade<90)_____;

m++;

}

if(n) printf("%f\n%d\n",average/n,m);

}

【空1】正确

【学生答案】

average=n=m=0;

【参考答案】

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

【空2】错误

【学生答案】

scanf("%f",&grade);

【参考答案】

grade<0

0>grade

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

【空3】错误

【学生答案】

if(grade<90) return;

【参考答案】

continue

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

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

int max_value(int m,int n,int ______)

{

int i,j,max;

max=array[0][0];

for(i=0;i

for(j=0;j

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

if(max

return(max);

}

main()

{

int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; /***********FILL***********/

printf("max value is %d\n",_____);

}

【空1】错误

【学生答案】

int max_value(int m,int n,int ______)

【参考答案】

array[][4]

array[3][4]

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

【学生答案】

if(max

【参考答案】

max=array[i][j]

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

【空3】错误

【学生答案】

printf("max value is %d\n",_____);

【参考答案】

max_value(3,4,a)

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

【改错1】错误

【学生答案】

for(j=1;j<=n;j++)

【参考答案】

t=1;

t=1.0;

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

【改错2】正确

【学生答案】

t=t*j;

【参考答案】

t=t*j;

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

【改错3】正确

【学生答案】

s=t+s;

【参考答案】

s=s+t;

s+=t;

s=t+s;

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

【学生答案】

printf("jiecheng=%d\n",s);

【参考答案】

printf("jiecheng=%f\n",s);

============================================================ 【改错1】错误

【学生答案】

int i,n=0

【参考答案】

int i,n=0;

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

【改错2】错误

【学生答案】

for(i=0;i<=strlen(str);i++)

【参考答案】

for(i=0;i<=strlen(str)-3;i++)

for(i=0;i

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

【改错3】错误

【学生答案】

++i;

【参考答案】

n++;

n+=1;

n=n+1;

++n;

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

二级(C语言程序设计)上机题汇总

二级(C语言程序设计)上机题汇总 一、程序调试题 (一)程序填空 练习一: /*该程序功能:对x=1,2,。。。。。,10,f(x)=x*x*-5*x+sin(x)的最大值。*/ #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ____ max=f(1);____ for(x=2;x<=10;x++) ___if( max void swap(__int *pa, int *pb____) { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(__a>b___) swap(&a,&b); printf("%d,%d,%d",a,b,c); } 练习三: /*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/ #include

void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= __m%2___; m=m/2; } for(;j!=0;j--) printf("%d", ____bin[j-1]_ _____ ); } void main() { int n; scanf("%d",&n); Dec2Bin(n); } 练习四: /*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6*/ #include void f(int *a,int *m) { int i,j; for(i=0;i<*m;i++) if(a[i]<0) { for(j=i--;j<*m-1;j++) a[j]=a[j+1]; ___*m=*m-1;___ } } void main() { int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; _ f(x,&n);_____ for(i=0;i void main() { int i,j,s; for(i=6;i<=1000;i++) { ___s=1;___

C语言上机报告答案

2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句 改成:printf("%c %c %d\n",a,b,c);

Removed_大连理工大学工科数学分析上机作业

工科数学分析上机作业 说明:以下两道题均是使用Matlab 语言,且在Matlab 7.0中运行通过。 1.(两个重要极限)计算下列函数的函数值并画出图形,观察两个重要极限值。 (1)y=f(x)=; (2)y=f(x)=. sin x x (1+x)1x 解:(1)求解过程如下: >> syms x >> y=limit(sin(x)/x) y = 1 >> ezplot(sin(x)/x,[-10*pi,10*pi]) >> ezplot(sin(x)/x,[-1*pi,1*pi]) 其图形如下:

(2)求解过程如下:>> syms x >> y=(1+x)^(1/x)

y = (1+x)^(1/x) >> y=limit((1+x)^(1/x)) y = exp(1) >> ezplot((1+x)^(1/x),[-1000,1000]) >> ezplot((1+x)^(1/x),[-10,10]) >> ezplot((1+x)^(1/x),[-1,1]) 其图像如下:

分析如下:(1)当x 取值为[-30,30]时,由该题的第一个图像可以看到,函数值在不断震荡,一会为正数,一会为负数。

而当x 取值为[-3,3]时,函数值始终大于0。当x 趋近于0时,由该题的第二个图像可以得到函数值为1。 另外,该结论也可以由夹逼法则证明,结果不变,当x 趋近于0时,函数值仍为1。 (2)由该题的三个图像可以知道,该函数在定义域内为单调递减函数。且由该题的第一和二个图像知道,当x 在 [0,10]区间内,函数递减趋势非常迅速。由该题的第三个图像知道,当x 趋于0 时,函数值为自然对数的底数 e ,即约为2.71828. 3.计算f(x)=, 12+1√2π ∫x 0e ?t 2/2dt 1?x ?3的函数值{f (0.1k );k=1,2,…,30}.计算结果取7位有效数字。 解:计算过程为: >> f1= @(t) exp(-(t).^2/2) f1 = @(t) exp(-(t).^2/2) >> for i=1:30

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

2016年大连理工大学优化方法上机大作业

2016年理工大学优化方法上机大作业学院: 专业: 班级: 学号: : 上机大作业1: 1.最速下降法:

function f = fun(x) f = (1-x(1))^2 + 100*(x(2)-x(1)^2)^2; end function g = grad(x) g = zeros(2,1); g(1)=2*(x(1)-1)+400*x(1)*(x(1)^2-x(2)); g(2) = 200*(x(2)-x(1)^2); end

function x_star = steepest(x0,eps) gk = grad(x0); res = norm(gk); k = 0; while res > eps && k<=1000 dk = -gk; ak =1; f0 = fun(x0); f1 = fun(x0+ak*dk); slope = dot(gk,dk); while f1 > f0 + 0.1*ak*slope ak = ak/4; xk = x0 + ak*dk; f1 = fun(xk); end k = k+1; x0 = xk; gk = grad(xk); res = norm(gk); fprintf('--The %d-th iter, the residual is %f\n',k,res); end x_star = xk; end >> clear

>> x0=[0,0]'; >> eps=1e-4; >> x=steepest(x0,eps)

2.牛顿法: function f = fun(x) f = (1-x(1))^2 + 100*(x(2)-x(1)^2)^2; end function g = grad2(x) g = zeros(2,2);

C语言上机实验[1]

实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏)

大连理工大学(工程抗震)大作业

大连理工大学《工程抗震》大作业

题目1:底部剪力法。 钢筋混凝土5层框架经质量集中后计算简图如下图所示,各层高均为3m , 集中于各楼层的重力荷载代表值分别为: 1500kN G =,2550kN G =,3580kN G =,4600kN G =,5450kN G =。结构阻尼比0.05ξ=,自振周期为10.55s T =,Ⅰ1类 场地类别,设计地震分组为第一组,抗震设防烈度为8度(设计基本地震加速度为0.30g )。按底部剪力法计算结构在多遇地震时的水平地震作用及地震剪力。 3580kN =2550kN =1500kN =(a )计算简图 4600kN =5450kN = 解:查《建筑设计抗震规范》表5.1.4知,8度多遇地震,αmax=设计地震分组为第一组, Ι类场地,取Tg= Tg=<T1=<5Tg= α1=(Tg/T1)r η2αmax =()××=≈ 查《建筑设计抗震规范》表5.2.1知,T 1=>=×= 取δn=T1+=×+= 总水平地震作用标准值: F EK =α1Geq=×(500+550+580+600+450)×85%=

各楼层水平地震作用标准值: Fi=G i H i F EK (1-δn)/∑G j H j (i=1,2,3n) ∑G j H j =500×3 +550×6+580×9+600×12+450×15=23970KN ·m F 1=[500×3××]/23970= F 2=[550×6××]/23970= F 3=[580×9××]/23970= F 4=[600×12××]/23970= F 5=[450×15××]/23970= 计算各楼层的层间地震剪力 V 1= F 1+ F 2+ F 3+ F 4+ F 5=++++= V 2= F 2+ F 3+ F 4+ F 5=+++=152KN V 3= F 3+ F 4+ F 5=++= V 4= F 4+ F 5=+= V 5=F 5= 题目3:怎样判断土的液化如何确定土的液化严重程度,并简述抗液化措施。 答:饱和松散的砂土或粉土(不含黄土),地震时易发生液化现象,使地基承载力丧失或减弱,甚至喷水冒砂,这种现象一般称为砂土液化或地基土液化。其产生的机理为:地下水位以下的饱和砂土和粉土颗粒在地震作用下,土颗粒之间有变密的趋势。因空隙水不能及时排出,土颗粒就处于悬浮状态,形成如同液体一样的现象,即所谓的土的液化现象。地基土液化判别过程可以分为初步判断和标准贯入试验判别两大步骤。下面分别予以介绍。 1、初步判断 饱和的砂土或粉土(不含黄土)当符合下列条件之一时,可初步判别为不液化或不考虑液化影响: (1)地质年代为第四纪晚更新世(Q3)及其以前时且处于烈度7度或者8度地区时可判为不液化土。 (2)粉土的粘粒(粒径<0.005mm )含量百分率当烈度为7度时大于10%、当烈度为8度时大于13%、当烈度为9度时大于16%,可判为不液化土。 (3)浅埋天然地基,当地下水位深度和覆盖非液化土层厚度满足下式之一时,可不考虑液化影响。 03w b d d d >+- 02 u b d d d >+-

大连理工大学优化方法上机大作业程序

函数定义: % 目标函数 function f = fun(x) fm=0; for i=1:499 fmi = (1-x(i))^2 + 100*(x(i+1)-x(i)^2)^2; fm=fm+fmi; end f =fm; end % 梯度 function g = grad(x) g = zeros(500,1); g(1)=2*(x(1)-1)+400*x(1)*(x(1)^2-x(2)); for i=2:499 g(i)=2*(x(i)-1)+400*x(i)*(x(i)^2-x(i+1))+200*(x(i)-x(i-1)^2); end g(500) = 200*(x(500)-x(499)^2); end % 二阶梯度

function g = grad2(x) g = zeros(500,500); g(1,1)=2+400*(3*x(1)^2-x(2)); g(1,2)=-400*x(1); for i=3:500 g(1,i)=0; end for i=1:498 g(500,i)=0; end g(500,499)=-400*x(499); g(500,500)=200; for i=2:499 for j=1:500 if j==i-1 g(i,j)= -400*x(i-1); elseif j==i g(i,j)= 2+400*(3*x(i)^2-x(i+1))+200; elseif j==i+1 g(i,j)= -400*x(i); else g(i,j)=0; end end end end 1.最速下降法 function x_star = steepest(x0,eps) gk = grad(x0); res = norm(gk); k = 0; while res > eps && k<=50000 dk = -gk;

大连理工大学数据结构(一)上机作业答案——张老师

1.将顺序表逆置,要求用最少的附加空间。 参考答案 #include #include #include #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int ElemType; typedef int Status; #define LIST_INIT_SIZE 100 #define LISTTINCREMENT 10 typedef struct{ ElemType *elem; int length; int listsize; }SqList; //创建空顺序表 Status InitList_Sq(SqList &L){ L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem)exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK; } //创建顺序表,插入元素 void ListInput_Sq(SqList &L){ int n,i; printf("input the length of Sqlist:"); scanf("%d",&n); L.length=n; for(i=0;i

C语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

大连理工大学概率上机作业

第一次上机作业 1.利用Matlab自带命令产生1000个均匀随机变量服从U(0,1)。 >>unifrnd(0,1,20,50) ans= Columns1through10 0.81470.65570.43870.75130.35170.16220.10670.85300.78030.5470 0.90580.03570.38160.25510.83080.79430.96190.62210.38970.2963 0.12700.84910.76550.50600.58530.31120.00460.35100.24170.7447 0.91340.93400.79520.69910.54970.52850.77490.51320.40390.1890 0.63240.67870.18690.89090.91720.16560.81730.40180.09650.6868 0.09750.75770.48980.95930.28580.60200.86870.07600.13200.1835 0.27850.74310.44560.54720.75720.26300.08440.23990.94210.3685 0.54690.39220.64630.13860.75370.65410.39980.12330.95610.6256 0.95750.65550.70940.14930.38040.68920.25990.18390.57520.7802 0.96490.17120.75470.25750.56780.74820.80010.24000.05980.0811 0.15760.70600.27600.84070.07590.45050.43140.41730.23480.9294 0.97060.03180.67970.25430.05400.08380.91060.04970.35320.7757 0.95720.27690.65510.81430.53080.22900.18180.90270.82120.4868 0.48540.04620.16260.24350.77920.91330.26380.94480.01540.4359 0.80030.09710.11900.92930.93400.15240.14550.49090.04300.4468 0.14190.82350.49840.35000.12990.82580.13610.48930.16900.3063 0.42180.69480.95970.19660.56880.53830.86930.33770.64910.5085 0.91570.31710.34040.25110.46940.99610.57970.90010.73170.5108 0.79220.95020.58530.61600.01190.07820.54990.36920.64770.8176 0.95950.03440.22380.47330.33710.44270.14500.11120.45090.7948 Columns11through20 0.64430.31110.08550.03770.03050.05960.17340.95160.03260.2518 0.37860.92340.26250.88520.74410.68200.39090.92030.56120.2904 0.81160.43020.80100.91330.50000.04240.83140.05270.88190.6171 0.53280.18480.02920.79620.47990.07140.80340.73790.66920.2653 0.35070.90490.92890.09870.90470.52160.06050.26910.19040.8244 0.93900.97970.73030.26190.60990.09670.39930.42280.36890.9827 0.87590.43890.48860.33540.61770.81810.52690.54790.46070.7302

二级C语言上机编程题答题技巧

二级C语言上机编程题技巧 一、技巧的原理 首先使用这个技巧必须了解上机编程题的评分原理。以上机题的第5套编程题为例。二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出: 在考生文件夹下存在一个名为in.dat的文件。首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。然后使用fscanf 语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。将结果用fprintf语句输入到out.dat文件中。其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。

所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。 二、使用技巧的条件 当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。使用这个技巧必须具备两个条件: 1、编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面 含有in.dat文件。 2、编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。例如 本题:

它让我们实现实型数据保留两位小数,并对第三位进行四舍五入。那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。那么这种技巧就不能使用。 三、步骤 确定了这个技巧可以使用后,我们就可以开始操作了。一般分为以下几步: 1、建立out.dat文件 上面可以看到我们的考生文件夹中是没有out.dat这个文件的。所以我们需要自己新建。最好的方法就是打开编程题直接编译、链接、执行。这样将程序执行一遍后我们的考生文件夹里就自动生成了我们需要的out.dat文件。(注意:这里生成了out.dat 文件后就不要再运行我们的程序了,因为每运行一次程序就会将程序生成的答案写入out.dat文件中,这样即算我们改成了正确答案,你如果再次运行程序,就会将我们修改的正确结果覆盖掉。) 2、修改答案

大连理工大学-环境化学-所有作业答案

绪论部分: 2、简述环境问题的分类?(10分) 答:环境问题是多方面的,但大致可分为两类:原生环境问题和次生环境问题。由自然力引起的为原生环境问题,也称为第一环境问题。由于人类生产和生活引起生态系统破坏和环境污染,反过来又危及人类自身和生存和发展的现象,为次生环境问题,也叫第二环境问题。原生环境问题和次生环境问题很难截然分开,它们之间常常存在着某种程度的因果关系和相互作用。 4、什么是环境化学,学习环境化学有什么意义?(10分) 答:环境化学是一门研究有害化学物质在环境介质中的存在、化学特性、行为和效应及其控制的化学原理和方法的科学。 意义:用来掌握污染来源,消除和控制污染,确定环境保护决策,以及提供科学依据诸方面都起着重要的作用。 5、简述环境化学的分支学科。(10分) 答:主要包括6类。 ①环境分析化学:是研究化学品的形态、价态、结构、样品前处理和痕量分析的学科。 ②环境污染化学:大气、水体和土壤环境化学,元素循环的化学过程。 ③污染控制化学:主要研究与污染控制有关的化学机制及工艺技术中化学基础性问题。 ④污染生态化学:是研究化学污染物在生态系统中产生生态效应的化学过程的学科。 ⑤环境计算化学:主要利用有效的数学近似以及电脑程序计算分子的性质。 ⑥环境生物化学:是研究环境化学品对生命影响的学科。 第一章: 1、地球环境主要由哪些圈层构成?英文单词?各之间有什么联系?各有哪些性 质?(10分) 答:地球环境主要由大气圈(atmosphere)、水圈(hydrosphere)、土壤圈(pedosphere)、岩石圈(lithosphere)和生物圈(biosphere)构成。 联系:大气圈、水圈、土壤圈和生物圈共同组成了地球环境系统,每个圈层都离不开

大连理工大学优化方法上机大作业

2016年大连理工大学优化 方法上机大作业 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

2016年大连理工大学优化方法上机大作业学院: 专业: 班级: 学号: 姓名: 上机大作业1: 1.最速下降法:

function f = fun(x) f = (1-x(1))^2 + 100*(x(2)-x(1)^2)^2; end function g = grad(x) g = zeros(2,1); g(1)=2*(x(1)-1)+400*x(1)*(x(1)^2-x(2)); g(2) = 200*(x(2)-x(1)^2); end function x_star = steepest(x0,eps) gk = grad(x0); res = norm(gk); k = 0; while res > eps && k<=1000 dk = -gk;

ak =1; f0 = fun(x0); f1 = fun(x0+ak*dk); slope = dot(gk,dk); while f1 > f0 + 0.1*ak*slope ak = ak/4; xk = x0 + ak*dk; f1 = fun(xk); end k = k+1; x0 = xk; gk = grad(xk); res = norm(gk); fprintf('--The %d-th iter, the residual is %f\n',k,res); end x_star = xk; end >> clear >> x0=[0,0]'; >> eps=1e-4; >> x=steepest(x0,eps)

计算机二级C语言上机题库复习小抄(最新校正,精美排版)

计算机二级C语言上机题库复习小抄 (最新校正,精美排版) 第一套 1.程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第一处struct student t; 第二处for(i=0;i0) 2程序修改 给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。 /**found**/ q=p+i; /**found**/ while(q>p) 3程序设计 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 int fun(STREC *a,STREC *b,int l,int h) {int i,j=0; for(i=0;i=1&&a[i].s<=h) b[j++]=a[i]; return j; } 第二套 1.程序填空 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 第一处free(q); 第二处q=p->next; 第三处q=q->next; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。 /**found**/ p=j; /**found**/ p=i; 3. 程序设计 请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套 1. 程序填空 函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 第一处for(i=0;idata==ch)return n; 第三处k=fun(head,ch); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#’结束输入。 /**found**/ for(i=0,t=0;p[i];i++) /**found**/ c[t]=?\0?; 3. 程序设计 请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *ss) { int i; for(i=1;i=?a?&&ss[i]<=?z?) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如:当形参n的值为10 的时,函数返回:9.6125588。 第一处s=0; 第二处for(i=1;i<=n;i++) 第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==?\0?) 3. 程序设计 请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为 3.14…。 double fun(double eps) { double s=1,t=1./3; int n=1; while(t>=eps) {s+=t;n++;t=t*n/(2.0*n+1) ;} return(s*2.0); } 第六套 1. 程序填空 给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。 第一处t[j]=s[i];j++; 第二处for(i=0;iscore[i]+=1; 第三处return a; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。 /**found**/ char *fun(char (*sq)[M]) /**found**/ return sp; 1

相关文档
相关文档 最新文档