文档库 最新最全的文档下载
当前位置:文档库 › 西工大c语言试题

西工大c语言试题

西工大c语言试题
西工大c语言试题

第一章

1. 一个C源程序必须有一个也只能有一个函数。

2. 是构成C程序的基本单位。

3. 一个C程序总是从函数开始执行的。

4.在C语言中,一个函数一般由两个部分组成,它们是和。

5. C语句是以结束的。

6. 可以用对C程序中的任何部分作注释。

7. 下面4个选项中,均是C语言关键字的选项是。

A) auto B) switch C) else D) if

char void extern struct

include continue scanf type

8. 下面正确的说法是。

A) main函数可以调用其他函数,也可以被其他函数调用

B)每个C语言源文件必须包含一个main函数,方可进行编译

C) 分号是c语句的一部分

D)函数的首部后必须加分号

第一章

1. main

2. 函数 3 main 4.函数的首部函数体 5. ;

6. /*. */

7. b 8.c

第三章

1.1. 以下组常量全是合法的C语言常量。

A) ―1\101ab‖ 0f 3.e5 B) ?abc‘ -0 9e

C) ?$‘ 1e5 0xa D) .5e-5 0198 e3.0

2. 如有定义:char c=‘\010‘;则变量c中包含的字符个数为。

3. 字符串“ab\n\\012\\\‖‖的长度是。

4. C语言中,整常数18的三种具体表示形式为。

5. C语言中的标识符只能由字母,数字,下划线3种字符组成,且第一个字符。

A)必须为字母B) 必须为下划线

C)必须为字母或下划线D)可以为字母、数字、下划线中的任一种字符

6. 下列4组选项中,均是C语言合法用户标识符的选项是。

A) timp abc$ suml B) day day_1 _day

C) day-1 3ab sum D) m.d.j 123 class

7.C语言中int、char和double三种类型数据在内存中所占字节数的大小关系为。

8.若有定义:char a=123,b=456; int sum; 执行sum=a+b; 后,sum的值是。

9. 已知各变量的类型说明如下:

int i=8,k,a,b;

unsigned long w=5;

double x=1.42,y=5.2;

则以下符合C语法的表达式是。

A) a+=a-=(b=4)*(a=3) B) a=a*3=2 C) x%(-3.0) D) y=float(i)

10. 以下符合C语言语法的赋值表达式是。

A) d=9+e+f=d+9 B) d=e=f=(d=3)+9

C) d+=(e+f)++ D) d=9+e++=d+9

11.若定义:int a,b,c; 并都赋予大于1的值,则下列能正确表达代数式的表达式是。

A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c

12. 设a是int型变量,则下面表达式的值为。

(a=7/5,a*2),a+6

13. 如有定义int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。

A) 2.500000 B) 2.750000 C) 3.500000 D) 0.000000

14. 设变量a为整型,f为实型,i为双精度,则表达式a+‘a‘+i*f值的数据类型为。

15. 已知字符‘a‘的ASCⅡ码为十进制数97,且设ch 为字符型变量,则表达式ch=‘a‘+‘8‘-?3‘

的值为。

16. 假设变量a和b均为整型,则以下语句的功能是。

a+= b; b= a-b; a- = b;

17.若定义int i=1,c; 表达式c= (i,i++) 的值是,c=(i++,i) 的值是。

第三章

1.c 2.1 3.9 4.18 022 0x12 5.c

6.b 7.char

11.d 12.7 13.a 14.双精度型15.‘f‘(或102)

16.a、b变量的值互换17.1 2

四章ktlx.htm

1.设x为int型,y为double型变量,则以下合法的输入语句为。

A) scanf(―%d,%5.1f‖,&x,&y); B) scanf(―%5d%f‖,&x,&y);

C) scanf(―%d,% lf‖,&x,&y); D) scanf(―%ld,%f‖,&x,&y);

2. 有以下程序,要输出22?p?98?q ,正确的输入方式是。

int x1,x2; char c1,c2;

scanf("%d%c%d%c",&x1,&c1,&x2,&c2);

printf("%d?%c?%d?%c",x1,c1,x2,c2);

A) 22?p98?q B) 22p?98q C) 22p?98?q D) 22?p98q

3. 若有定义:unsigned int a=65535;float x=32.1789; 在Turbo C 环境下,执行下列语句的输出结果是。

printf(―\n%u,%x\n%-7.2f,%.0f‖,--a,a,x,x);

A) 65534,FFFE B) 65534,FFFF C) 65534,ffff D) 65534,FFFF

32.18??,32 32.18??,32 32.18??,32 32.17??32

4. 如有以下定义和语句,为使变量c1得到字符A,变量c2得到字符B,正确的格式输入形式是。

char c1,c2;

scanf(―%4c%4c‖,&c1,&c2):

5. 若以小数形式为double型变量x 输入,应使用语句。

6. 已有定义int x;float y;且执行scanf(―%3d%f‖,&x,&y);语句,如果从第一列开始输入数据

12345 678<回车>,则y的值为。

7. 若有定义:int h=-0xa;则语句printf("%d, %x, %u\n",h,h,h);的输出结果是。

第四章

1. c

2. b

3. b

4. A B

5. scanf(―%lf‖,&x);

6. 45

7. –10,fff6,65526

第五章

1. 若float x=1.2; int a=1,b=2,c=0; 则下面组表达式的值不同。

A) b=ab>c B) b&&!c+6 a=c++,c

C) a*=x+a; !c+a D) x>a?a:c (int)x%2

2. 下列各组运算符中。哪一组运算符的优先级不同。

A) [ ] -> ( ) B) ! ++ sizeof

C) >= < != D) = += %=

3. 运算符!= > && , = %的优先级顺序是。

4. 在运算符!= + > && , = 中,右结合的有。

5. 如有:int a=1,b=2,c=3,d=4,m=5,n=6;执行(m=a>b)&&(n=c>d)后n的值为。

6. a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是。

7. 将“x不能被3整除,也不能被5整除,但能被7整除”写成C的逻辑表达式。

8. 设y为int型变量且y>0,请写出描述“y是奇数”的逻辑表达式。

9. 将条件“x在[10,20]区间或在[50,60]区间‖写成C逻辑表达式是:

10. 和s=(a

11. 若有定义:int a=5,b=9; 执行语句printf(―%d%c%d\n‖,a,a>b? ?>‘: ?<‘ ,b);后,输出结果

是。

12. 若定义int x=16,n=0; 则执行下面程序段后,n的值是。

if(x%3) if(x%2)n++;

else n--;

n=n+n;

13. 要输出既不为‘A‘也不为‘Z‘的字符,正确的语句是。

A) if(x!='A',x!='Z')putchar(x); B) if(x!='A'||x!='Z')putchar(x);

C) if(x!=('A'||'Z'))putchar(x); D) if(x!='A'&&x!='Z')putchar(x);

14. 有语句if(a>0&&a<10)a++; 与之等价的语句是。

A) if(010)a++;

C) if(!(a<0||a>10))a++; D) if(a>0,a<10)a++;

15. 两次执行下面的程序,如果从键盘上分别输入6和4,输出结果为。

main()

{int x;scanf("%d",&x);

if(x++>5) printf("%d",x);

else printf("%d",x--);

}

A) 7和5 B) 6和3 C) 7和4 D) 6和4

16. 若有定义:int a=3,b=2,c=1;在执行下列语句后,输出结果为。

if(a=!b)printf("1:");

if(a>b&&b>c) printf("2:");

else if(c%b) printf("3:");

A) 无输出B) 1:2 C) 2: D) 3: E) 1:3

17. 如有说明语句int i=5,j=4,k=6; float f;则执行语句f=(i

为。

A) 4.0 B) 6 C) 5.0 D) 5

18.假定所有变量均已定义,下列程序运行后,x的值为。

ok1=1;ok2=2;ok3=3;x=15;

if(!ok1) x--;

else if(ok2) if(ok3)x=3;

else x=4;

A) 4 B) 3 C) 14 D) 15

19.以下不正确的if语句是。

A) if(x>y&&x!=y) ; B) if(x= =y) x+=y;

C) if(x!=y) scanf(―%d‖,&x) else scanf(―%d‖,&y); D) if(x

20.若有定义:char a; int c=0,n=0,s=0; 执行下列语句后,s的值是。

scanf (―%c‖,&a);

if (a>= ?a‘&&a<= ?z‘)c++;

else if (a>= ?0‘&&a<= ?9‘) n++;

s++;

输入数据:8

21. 如下三个条件语句(b是整型变量,S1和S2表示内嵌语句)

①if(b)S1;else S2; ②if(b= =0)S2;else S1; ③if(b!=0)S1;else S2;

功能等价的是。

A) ①和②B) ②和③C) ①和③D) ①和②和③

22. 把以下三个if语句改成一个if( )~else形式的if语句是。

if(w<0) k=0;

if(w>=0&&w<=100)k=1;

if (w>100) k=0;

第五章

1. a 2. c 3. % > != && = , 4.= 5.6 6.1

7. x%3!=0&&x%5!=0&&x%7==0 8.y%2!=0 9. x>=10&&x<20||x.=50&&x<=60

10. if(a

22. if(w>=0&&w<=100) k=1; else k=0;

第六章

1. 设有程序段

int k=10;

while(1<=k<=10) k=k-1;

则下面描叙正确的是。

A) while 循环执行10次B) while循环是无限循环

C) 循环体语句一次也不执行D) 循环体语句执行一次

2. 若有定义:int i,n=9; 下列循环语句的循环次数为。

for(i=2;i

{if(n%i) continue; break;}

A) 7 B) 2 C) 1 D) 3

3. 执行下列程序段后,k值是。

int k=1,n=263;

do{k*=n%10;n/=10;} while(n);

4. 若已定义int x,y; 以下程序段的输出结果是。

x=y=0;

do{y++;x*=x;}while(x>0&&y<5);printf("y=%d,x=%d",y,x);

5. 设a、b为整型变量,a=10,则以下for语句的执行结果是。

for(b=10;a= =b; ++a ,b++) printf(("ok");

6. 对for(表达式1;;表达式3)可理解为。

A) for(表达式1;0;表达式3)B) for(表达式1;1;表达式3)

C) for(表达式1;表达式1 ;表达式3)D) for(表达式1;表达式3 ;表达式3)

7. break语句不能用于和循环语句之外的其他任何语句中。

8. 若for循环中包含一个带有break语句的switch结构,那么该break语句的作用是跳出

结构。

9. 若定义:char a[ ]="\xah0\0y\"AB",i; 则下面程序段的输出结果是。

for(i=0;a[i]!=0;i++);printf("%d",i);

10. 若已定义int i,j; 以下for语句的输出结果是。

for(i=8;j;i++)printf("%d",(j=i%5));

第六章

1.b 2.b 3.36 4.y=1,x=0 5.死循环6. b

6.b 7.Switch 8.Switch 9.3 10.340

第七章

1.以下对一维整型数组a的正确定义是。

A) int a(10); B) int n=10,a[n];

C) int n; D) #define SIZE 10

scanf(―%d‖,&n); int a[SIZE];

int a[n];

2. 如有说明:int a[][4]={0,0};则二维数组a的第一维大小为。

3. 如有定义:double x[3][5];则数组中列下标的上限为。

4. 二维数组a有m列,则在a[i][j]前的元素个数为。

5. 要想从终端把字符串“This is a book‖送到字符数组中,应调用函数。

6. 执行语句:n=strcmp("ABC","abc");后n的值为。

7. 若有定义:char str[80]= "c:\\tc30\\MYPRG.C";执行语句printf("%u",strlen(str));的输出

结果为,而执行语句printf("%u",sizeof(str));的输出结果为

8. 有定义static char nal[8]="boy",na2[8]= "girl";写一语句比较这两个字符串是否相等,如相等

则打印YES 。

9. 若定义:int a[10]={1,2,3,4,5,6,7,8,9,10},n,i; 则下面循环语句的循环次数是。

for(i=0,n=0;n<3;i++) n=(a[i]%2==0)?n+1:n;

A) 3 B) 6 C) 10 D) 1

第七章

1.d 2.1 3.4 4.i*m+j 5.gets 6.-32

7.15 80 8.if (strcmp(na1,na2)= =0) printf(―YES‖); 9. b

第八章

1. C语言允许函数值类型缺省定义,此时该函数值的类型是。

A) float 型B) int型C) long 型D) double型

2. 如用数组名作函数调用的实参,传递给形参的是。

A) 数组的首地址B) 数组第一个元素的值

C) 数组全部元素的值D)数组元素的个数

3. 如有以下数组定义和f函数调用语句:

int a[3][4];

f(a);

则在f函数的说明中,对形参数组array的错误定义方式是。

A) f(int array[ ][6]) B) f(int array[3][ ])

C) f(int array[ ][4]) D) f(int array[2][5])

4. 正确的函数定义是。

A) int fun(int a[5]) B) int fun(int a[5])

{return(a[0]*a[4]);} {fun=a[0]*a[4];return fun;}

C) int fun(int a[],int n) D) int fun(int a[])

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

for(i=0;i

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

return a;}

5. 若有函数定义

void print(int a[],int n)

{int k; for(k=0;k

主函数中定义:int a[10];n=10,y; 则正确的函数调用形式是。

A) void print(int a[ ],int n); B) print(a[10],10);

C) print (a,n); D) y=print(a,10);

6. 以下正确的说法是。

A) void类型函数不能有return语句。

B)函数形参的存储单元是动态分配的。

C)C)静态局部变量不释放,所以与全局变量作用相同。

D)若函数中没有return语句,则一定没有返回值。

7. 在C语言中,函数名代表该函数的地址。

8. 如果函数值的类型与返回值类型不一致,则以类型为准。

9. 函数的形参变量在时分配内存单元,返回主调函数后,该变量

单元被。

10. 在函数体内部定义的变量为变量,在函数体外部定义的变量为变量,也

称为外部变量。

11. 在一个函数内部直接或间接调用该函数本身,称为函数的调用。

12. 已知函数定义:void fun(int n,double m) {printf("%f",n*m);} 写出用函数原型进行函数声

明的形式。

13. 以下说法正确的是。

如果在一个函数中的复合语句中定义了一个变量,则该变量

A) 只在该复合语句中有效B) 在该函数中有效

C) 在本程序范围内均有效D) 为非法变量

14. 全局变量存放在存储区中。

15. 对局部静态变量是在时赋初值的。

16. 定义局部变量int a,b=10; static int c; 则a、b、c的值分别是、、。

17. 凡是函数中未指定存储类型的局部变量,其隐含的存储类别为。

18. 以下程序的功能是。

f(int n)

{static int f=1;

f=f*n; return f ; }

main( )

{int j;

for(j=1;j<=5;j++) printf(―%d != %d‖,j,f(j)); }

第八章

1.b 2.a 3.b 4. a 5.c 6.b

7.入口8.函数值9.该函数被调用释放10.局部全局11.递归12.void fun (int n,double m); 13.a 14.静态15.编译16. 不确定10 0 17.Auto 18.计算1!2!3!4!5!

第九章

1. 预处理命令行都必须以符号开始。

2. 宏定义是用宏名代替一个。

3. 把重力加速度9.8定义为一个符号常量G的宏定义命令是。

4. 下面不正确的说法是。

A) 宏替换不占用运行时间。

B) 在进行宏定义时,宏串中可以引用已定义的宏名。

C) 对于带参的宏,宏名无类型,它的参数也无类型。

D) #include 后面的文件名用“”括起来和用< >括起来作用是一样的。

5. C语言的编译系统对宏命令的处理是。

A) 在程序运行时进行的

B) 在程序连接时进行的

C) 和C程序中的其语句同时进行编译

D) 在对源程序中其它成分正式编译之前进行

6. 如有宏定义#define Mod(x,y) x%y 则执行以下程序段后的输出为。

int z,a=15,b=100;

z=Mod(b,a);printf(―%d\n‖,z++);

A) 10 B) 11 C) 6 D) 宏定义不合法

7. 有宏定义:#define N 5

#define SW AP(x,y) {t=x;x=y;y=t;}

及变量定义:int s[N]={1,2,3,4,5},i,t; 语句for(i=0;i

在预编译后被展开为。

8.下面程序的运行结果是。

#define D(r) r*r

main( )

{int x=1,y=2,t;

t=D(x+y);

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

9. 在“文件包含”预处理命令的使用形式中,当#include后面的文件名用“”(双引号)括

起来时,寻找被包含文件的方式是。

A)直接按系统设定的标准方式搜索目录

B)先在源程序所在目录搜索,再按系统设定的标准方式搜索目录

C)仅搜索源程序所在目录

D) 仅搜索当前目录

10. 程序中引用了库函数sin,则应在文件开头加文件包含命令。

第十章

1.int (*p)[4]; 2. 4 1 3.c 4.d 5.a 6. d

7.20 (*p2)(x*3.1415926/180) 8.b 9.d 10.d

11.a 12.c 13.! 14. 1 0 15.a[1] 16.2 2 .

第十章

1. 定义一个指向含有4个整型元素的一维数组的指针变量p的语句是。

2. 如有以下语句:

int a[4]={1,3,5,7},*p;

p=&a[1];

则++(*p)的值是,*--p的值是。

3. 下列定义存在语法错误的是。

A) char *p="CHINA"; B) float b[5]={0},*p=b;

C) int a[3]={0,1,2,3}; D) char str[ ]= "Hello! "

4. 已知函数定义:void fun(int a[ ][4],int x){……} 下列对fun的声明正确的是。

A) int fun(int a[ ][4],int x); B) void fun(int *,int x);

C) void fun(int a[ ][4], x); D) void fun(int (*p)[4],int);

5. 如定义int a[3][3],则表示a[1][1]元素地址的正确写法是。

a) *(a+1)+1 b) &a[1]+1 c) * a[1]+1 d) (a+1)+1

6. 如有以下定义和赋值语句int a[2][3],(*p)[3]; p=a; 则对a数组的第i行第j列(假使i,j 已正确说明并赋值)元素地址的合法引用为。

A) *(*(p+i)+j) B) *(p+i+j) C) (p+i)+j D) *(p+i)+j

7. 若有定义:long a[5][5],(*p1)[5];double x,(*p2)( ); 且有p1=a;p2=sin; 则执行p1++后

p1增加个字节;而利用指针变量p2求sin x的表达式为。

8. 下面定义了指向函数的指针变量p。

A) int p; B) int (*p)( )

C) int *p( ); D) int (*p)[N]

9. 若有语句int *p,a=4; p=&a;下面均代表地址的一组选项是。

A) a, p,*&a B) &*a,&a,*p

C) *&p,*p,&a D) &a,&*p,p

10. 若已定义:int a[5][5],*p=a[0]; 执行p++;后,*(p+1)+1相当于。

A) a[2][1] B)a[1][1] C) a[0][1]+1 D) a[0][2]+1

11. 若定义:int x,*p; 则正确的赋值表达式是。

A) p=&x; B) p=x; C) *p=&x; D) *p=*x;

12. 若已定义:char *s; 则s=‖boy‖;表示。

A) 将字符串中所有字符赋予s; B) 将字符b赋予s;

C) 将字符串的起始地址赋予s; D) 将字符y赋予s ;

13. 若有定义char *p; 执行p= ―Hello!‖; 后,p[5]代表字符。

14. 若定义:int a[3][3]={10,8,1,3,0,5,2,9,6}, *p=*(a+1)+2,(*q)[3]=a; 执行p=p-3;后,*p的值

为,*(*(q+1)+1)的值为。

15. 若有定义:int a[10],*p=a; 执行语句*(++p)=3; 后,3被赋给数组元素。16.若定义int *p1; float *p2; 则指针变量p1占个字节,p2占个字节。

第十章

1.int (*p)[4]; 2. 4 1 3.c 4.d 5.a 6. d

7.20 (*p2)(x*3.1415926/180) 8.b 9.d 10.d

11.a 12.c 13.! 14. 1 0 15.a[1] 16.2 2 . 第十一章

1. 已知学生记录描述为:

struct student

{int no;

char name[20];

char sex;

}s;

对变量s的正确赋值方式是。

A) no=123;name[ ]=‖wanghong‖;sex=‘m‘;

B) scanf(―%d%s%c‘,&no,name,&sex);

C) s.no=123;https://www.wendangku.net/doc/3313020590.html,[ ]=‖wanghong‖;s.sex=‘m‘;

D) scanf(―%d%s%c‖,&s.no,https://www.wendangku.net/doc/3313020590.html,,&s.sex);

2. 如有以下说明:

struct student

{int age; int num;

}studl,*p=&studl;

则对结构体变量studl 中的成员age的不正确引用方式为。

A) studl.age B) student.age C) p→age D) (*p).age

3.以下错误的说法是。

A) 结构体中的成员名可以与程序中的变量名相同。

B) 结构体变量所占内存长度为结构体个成员的长度之和。

C) 结构体数组各元素必须是同一类型,因此各元素所占字节数相同。

D) 结构体类型的成员只能是int、float、char、double四种类型。

4. 下面程序的运行结果是。

main( )

{struct cmplx

{int x;

int y; }cnum[2]={1,3,2,7};

printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); }

A) 0 B) 1 C) 3 D) 6

5. 若有定义:

struct

{long num; int score[3]; float aver;

}stu[3]={22010,78,89,76,0},{22018,67,73,83,0},{22036,94,70,82,0};

则stu[2].score[0]的值为;结构体数组stu的存储字节长为。

第十一章

1.d 2.b 3.d 4.d 5.94 42

第十二章

1. 六个位运算符& 、|、~、>>、<<、^ 按优先级从高到低的顺序排列为。

2. 以下正确的说法是。

A) a&b与a&&b等价B) a | b与a || b 等价C) a^b与b^a等价D) !b与~b 等价

3. 若定义:int x=20; 则执行printf ("%d\n", ~x); 后,输出结果是。

A) 2 B) -20 C) -21 D) -11

4.若有以下程序段

unsigned x=3,y=5;

x=x^y ; y=y^x ; x=x^y ;

则执行以上赋值语句后,x和y的值分别是。

A) x=3, y=5 B) x=5, y=5 C) x=3, y=3 D) x=5, y=3

5. 若有定义:char x=3, y=6, z ;则执行语句z=x^y<<2; 后,z 的值是。

A) 00010100 B) 00011011 C) 00001100 D)00011000

6. 设有char a=0352, b; 若要使a&b的结果为二进制10000000(保留a的最高位和最低位,屏蔽其余位),则b的二进制数应是。

7. 若定义:unsigned a=0112 ,x ,y ; int n=3 ; 则执行x=a>>n ; printf ("x=%o\n", x); 的输出结果

是,执行y=~(~0<<4) ; printf ("y=%o\n",y) ; 的输出结果是。

第十二章

1.~ << >> & ^ | 2. C 3. C 4. D 5. B 6.10000001 7.X=11 y=17

第十三章

1.若执行fopen函数时发生错误,则函数的返回值是。

2. fopen ("file" , "r" ) 表示以方式打开文件。

3. 以下不正确的说法是。

A) 以"r"、"w"方式打开文件时,文件指针指向文件头部;

B) 以"r" 方式打开文件时,文件必须存在;

C) 以"w" 方式打开文件时,若文件存在,则在文件尾部接着写入,若文件不存在,则重新建立文件;

D) 以"a" 方式打开文件,表示在原有文件尾部追加数据。

4.C文件按数据组织形式可分为文件和文件。

5. 按指定格式从文件中输入数据的函数的调用形式是;

从文件中输入数据块的函数的调用形式是;

从文件中输入字符串的函数的调用形式是;

从文件输入单个字符的函数的调用形式是。

6. rewind函数的作用是。

第十三章

1.0 2.只读file 3.C 4.ASCII(文本)二进制5.fscanf (文件指针,格式字符串,输入表项)

fread (buffer, size, count, fp )

fgets (字符数组名,n,文件指针)

fgetc ( 文件类型指针)

6.使文件位置指针重新返回文件的开头

测试题1

一、选择题(单选2分×12,共24分)

1. 下列不合法的C语言常量是。

A) ‘\101‘ B) 123L C) 0xFF D) -e8

2. 若有定义:int a=123,b=456;long sum; 下列语句不能正确求解a、b之积的为。

A) sum=(long)(a)*(long)b; B) sum=(long)a*b;

C) sum=(long)(a*b); D) sum=1.0*a*b;

3. 不能正确表示“a为奇数”的逻辑表达式为。

A) a%2= =1 B) a%2 C) a%2= =0 D) !(a%2= =0)

4. 若有定义:int a=3,b=2,c=1,d;float x=2.3,y=1.0; 下列哪一组C表达式的值是不相同的。

A) a%b B) (int)x>b C) d=c*2 D) 67-‘A‘

a/b c/b a- =1 d=c++,c++

d=x—c d=a>b>c b&&c+1 --a

5.若有定义int m=12,n=4;float x=8,y=3;下列输出函数中存在格式符不匹配现象的是。

A) printf(―%d%s%d\n‖,m>n?m:n,―>‖,m>n?n:m); B) printf(―%d,%e‖,m/n,x/y);

C) printf(―%f,%ld‖,m/5.0,(long)(x/y)); D) printf(―%d,%d‖,m*n,(int)x/y);

6. 若运行时输入:12345678↙,则下列程序运行结果为。

main( )

﹛int a,b;

scanf(―%2d%*2d%3d‖,&a,&b);

printf(―%d\n‖,a+b); ﹜

A) 46 B) 579 C) 5690 D) 出错

7. 循环语句for(i=0,j=8;i<=j;i++,j--)printf(―*‖);的循环次数为。

A) 4 B) 5 C) 9 D) 死循环

8. 若有定义:int c=0,i=0;char s[]= ―How do you do‖;

执行语句:while(s[i]){c+=s[i]>=97;i++;}后,变量C的值为。

A)14 B)13 C)12 D)9

9. 若有定义:static int a[4]; char c[ ]=‖PROGRAM‖,*p; double d; 则下列说法错误的是。

A) 变量d及数组a、c的存储长度相同B) 数组a各元素初值为0

C) a[4]代表a数组最后一个元素D) 执行p=‖Hello!‖;后p[5]代表字符?!‘

10. 若有定义:int a[3]={1,2,3},i=0,*p=a; 当p未改变时,组表示形式不等价。

A) a+i B) a[i] C) *(a+1) D) &a[1]

p+i *(p+i) *(++p) *p+1

11.若有定义:int a[3][4],i,j,*p1,(*p2)[4]; 当执行p1=&a[0][0];p2=a;后,下列项不能代表

a[i][j]。

A) *(p1+i*4+j) B) *(a+i)+j C) *(a[i]+j) D) *(*(p2+i)+j)

12. 下面错误的论点是 。

A) 一个C 程序的多个函数可分布在多个源程序文件中

B) 结构体数组各元素的类型可不同

C) continue 语句的作用是跳过本次循环后面尚未执行的语句

D) 带参的宏展开时,实参与形象之间是字串的替换

二、填空题(1分×17,共17分)

1.C 语言常量0xb3、125e-3代表的十进制数分别为. 、 。

2.若有定义int a=1,b=2;float x; 则表达式:x=17,x=(x-a*b)/((int)x%3)+(a&&!b-2)的值为

。 3.将代数式2a+sinx 2-d c b

a -+写成C 表达式为 。

4.条件“a 、b 之一为零,但不能都为零” 用C 逻辑表达式表示,应为

5.若有定义:char str[ ]=―a<=b,f =x+012\034\\\x3f‖; 则str 数组的存储字节数为 。

6.若将字符串“How are you?”输入到一维字符数组str l 中,应使用语句 。

7.若有定义:int a= -1;执行printf(“%u,%x ”,a,a);的结果为 。

8.若有定义:int n; 执行以下程序片段后,程序的输出结果是 。

printf(―\n\t‖);

for(n=0141;n!=0;n=n/2) printf(―%d \b\b‖,n%2);

9.当某函数调用的实参是二维数组名时,对应形参可是 或 。

10.若有定义:float *p; 则p++的增量是 。

11.在Turbo C 中,F9键的功能是 ,单步执行的功能键为 。

12.若有定义:int a=5,b=9;下列程序片段运行结果是 。

a=a+b; b=a-b; a=a-b;

if(a= =b)printf(―%d=%d \n‖,a,b);

else print f(―%d%c%d \n‖,a, a >b? ?>‘: ?< ‘,b);

13.若有定义:

struct

{long num;

float score[4];

}str[3]{101,78,89,76,69,102,67,73,84,75,103,94,70,82,79};

则str各元素的长度为字节,str[1].score[2]的值为:。

三、阅读题(5分×5,共25分)

1.写出程序的运行结果

#include ―stdio.h‖

main( )

{ char ch; int n,c1,c2;

n=c1=c2=0;

while ((ch=getchar( ))!=‘\n‘)

{ if(ch>=‘0‘&&ch<=‘9‘) n=ch-‘0‘+n;

else if(ch.>= ‘a‘&&ch<=‘z‘) cl++;

c2++; }

printf(―%d,%d,%d\n‖,n,cl,c2);

}

运行时输入:abc123 deF406 End↙

2.写出程序的运行结果

main( )

{ int n,t,sum=0;

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

{ t=fun(n);

sum+=t;

printf(―%d‖,t);

if(<3) printf(―+‖);

}

printf(―=%d\n‖,sum);

}

int fun(int n)

{ static int m,f=1;

if(n= =1) f =n*(n+1)*(n+2);

else f =f*(n+2)/m;

m=n;

return(f);

}

3.写出程序的运行结果

main( )

{ void cutfun(char *sl,char *s2,int m);

char str[40]= ―computer programming language‖,str2[40]; int i;

for(i=0;strl[i]!=‘\0‘;i++)

if(strl[i]= =‘ ‘) break;

cutfun(strl,str2,i);

strl[i]= ?\0‘;

printf(―\n%s\n%s\n‖,str1,str2);

}

void cutfun(char *sl,char *s2,int m)

{ int i, j;

for(i=m+1,j=0; *(sl+i)!= ?\0‘; i++,j++)

*(s2+j)=*(s1+i);

*(s2+j)= ?\0‘;

}

4.阅读程序并改正其中的错误,使程序能计算四边形的面积,而当输入数据不合理时能显示较为明确的错误信息(a,b,c,d为四条边,e为对角线)。

#define S(a,b,c) 1./2*(a+b+c)

#define T(x) s-x

#include ―stdio.h‖

main( )

{ float a,b,c,d,e,s,area1,area2; int i, j;

scanf(―%f,%f,%f,%f,%f‖,&a,&b,&c,&d,&e);

i=a+b>e&&a+e>b&&b+e>a;

j=c+d>e&&c+e>d&&d+e>c;

if(i&&j)

{ s=S(a,b,c);

area1=sqrt(s*T(a)*T(b)*T(c));

s=S(c,d,e);

area2=sqrt(s*T(c)*T(d)*T(e));

printf(“area=%d\n ”,area1+area2);

}

else if(i==0||j==0) printf(“Two part data error!”);

else if(i==0) printf(“Data a,b,e error!”);

else printf(“Data c,d,e error!”);

}

5. 阅读程序并在下划线上填入适当内容,使程序可找出最大元素的位置、并依据该位置输出最大元素。

;

main( )

{ int a[3][3]={-7,9,-5,12,6,2,15,7,4},i,j;

fun(a, ,

printf(―max:a[%d][%d]=%d \n‖,i,j,a[i][j]);

}

void fun ( ,int *pi, int *pj)

{ int i,j,max=p[0][0];

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

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

if(p[i][j]>max){ max=p[i][j]; *pi=i;*pj=j; }

}

四、编程题(12分+10分+12分,共34分)

1. 编写程序,可循环输入a 、b 及字符变量ch,并根据ch 值实现a 与b 的四则运算。 要求:1)当输入字符‘+‘、‘-‘、‘*‘、‘/‘之一时完成相应的运算并输出结果;

2)当输入其它字符时显示信息―program end.‖,并结束程序;

2. 编写程序,从键盘输入x ,利用幂级数展开式的前20项计算成本cosx 的近似值。

+-+-=!6!4!21cos 6

42x x x x (-∞

3. 编写程序,对下面的学生成绩单进行处理,求出每位学生的平均成绩及每门课程的平均

成绩,并按该成绩单格式输出报表。

要求:1)在主函数中输入原始数据;

2)用自定义函数average求各项平均成绩;

3)用自定义函数list输出报表;

No. ENGL MA TH PHYS A VER

1007 90 80 76

1023 87 68 74

1014 56 57 72

1015 93 87 84

1047 73 69 58

A VER

测试题1答案

一、选择题

1. D

2. C

3. C

4. C

5. D

6. B

7 . B 8. D 9. C 10. D 11. B 12. B

二、填空题

1.179 、0.125

2.8.5

3.2*a+sin(x*x)—sqrt((a+b)/(c--d))

4.a*b= =0 &&a+b!=0 (或(a= =0!!b= =0) &&! (a= =0&&b= =0) )5.16

6.get(strl);

7.65535,ffff

8.1100001

9.二维数组名或行指针变量

10. 4

11.编译、连接,F7或F8

12.9>5

13.20 84

三、阅读题

1.16,7,17

2.6+24+60=90

3.computer

programming language

4.#define S(a,b,c) 1./2*(a+b+c)

#define T(x) (s-x)

#include ―math.h‖

main( )

{ float a,b,c,d,e,s,area1,area2; int i, j;

scanf(―%f,%f,%f,%f,%f‖,&a,&b,&c,&d,&e);

i=a+b>e&&a+e>b&&b+e>a;

j=c+d>e&&c+e>d&&d+e>c;

if(i&&j)

{ s=S(a,b,e);

area1=sqrt(s*T(a)*T(b)*T(c));

s=S(c,d,e);

area2=sqrt(s*T(c)*T(d)*T(e));

printf(“area=%f\n”,area1+area2);

}

else if(i==0&&j==0) printf(“Two part data error!”);

else if(i==0) printf(“Data a,b,e error!”);

else printf(“Data c,d,e error!”);

}

5. void fun(int p[ ][3], int *pi ; int *pj); ;

main( )

{ int a[3][3]={-7,9,-5,12,6,2,15,7,4},i,j;

fun(a, &i , &j );

printf(―max:a[%d][%d]=%d\n‖,i,j,a[i][j]);

}

void fun ( int p[3][3] ,int *pi, int *pj)

{ int i,j,max=p[0][0]; *pi=0; *pj=0 ;

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

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

if(p[i][j]>max){ max=p[i][j]; *pi=i;*pj=j; }

}

四、编程题

1. #include "stdio.h"

main()

{char ch;float a,b;int loop=1;

while(loop)

{printf("Input a operator: ");

ch=getchar();

if(ch=='+'||ch=='-'||ch=='*'||ch=='/')

{printf("input two float numbers a,b:");

scanf("%f,%f",&a,&b);getchar();

switch(ch)

{case '+':printf("%f%c%f=%f\n",a,ch,b,a+b);break;

case '-':printf("%f%c%f=%f\n",a,ch,b,a-b);break;

case '*':printf("%f%c%f=%f\n",a,ch,b,a*b);break;

case '/':if(b!=0.0) printf("%f%c%f=%f\n",a,ch,b,a/b);

else printf("\tdivisor is zero\n");break;

}

}

else {printf("\Program end.\n");loop=0;}

}

getch();

}

2. #include "math.h"

main()

{ int i,n=1; float x,t,cosx;

printf("Input x:");

scanf("%f",&x);

cosx=1;t=1;

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

{t=-t*x*x/(n*(n+1));

cosx=cosx+t;

n+=2;

}

printf("%f,%f\n",cosx,cos(x));

}

3. #include "math.h"

main()

{static float score[6][4],y;

int i,j;

long num[5];

void average(float score[6][4]);

void list(float score[6][4],long num[]);

y=sin(3.14);

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

{scanf("%ld",&num[i]);

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

scanf("%f",&score[i][j]);

}

average(score);

list(score,num);

}

void average(float score[6][4])

{float sum;

int i,j;

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

{sum=0;

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

sum=sum+score[i][j];

score[i][3]=sum/3;

}

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

{sum=0;

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

sum=sum+score[i][j];

score[5][j]=sum/5;

}

return;

}

void list(float score[6][4],long num[])

{int i,j;

printf(" NO ENGL MATH PHYS A VER \n");

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

{ printf("%ld",num[i]);

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

printf("%7.1f",score[i][j]);

printf("\n");

}

printf("A VER ");

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

printf("%7.1f",score[5][j]);

printf("\n");

return;

}

测试题2

一、选择题(单选,2分×12=24分)

1. 下列有关C标识符的说法错误的是。

A)C标识符的首字符必须是字母或下划线B)标识符中的字母有大小写之分

C)全局量和局部量的标识符可以相同D)关键字也能作为标识符

2. 下列哪一组C常量全部合法。

A)‘\x789’le2 ―7:30‘40\‖\n‖ B)―-123.456‖ 0.0 2.7le-0.5

C).234 34f ?\013‘ D)0120 ?\‘ ‘ 978L

3. 若有定义float x=1.2;int a=1,b=2,c=0;下列组C表达式的值是不同的。

A)A) A) a=!b B)c=x*b C)b=b>x>a D)c=a+b,++c

c=a/b b++ x>a?a:c a*b%3+b

4. 设c1为char型变量,若利用scanf(―%d‖,﹠c1); 语句将字符A赋给c1,其正确的输入形式为。

A)‘\101‘ B)65 C)‘A‘ D)A

5. 若有定义int a=1,b=0,c=-1;执行下列分支语句后a的值为。

if(a++‖b++)a*=b+c;

A)1 B)0 C)-1 D)-2

6. 若有定义int i=0; char a[80]=‘‘\‘‘C:\\TC30\\LIB\‘‘‘‘; 则执行语句while(a[i])i++; 后变量i的值为。

A)13 B)17 C)14 D)80

7. 下列说法中错误的是。

A)结构体成员的类型可以是已定义的结构体类型

B)无返回值函数未必是无参函数

C)自定义函数可以调用所有其它函数,包括自己调用自己

D)静态局部变量的生存期是程序运行的整个期间

8. 在调试程序过程中,下列哪一类错误将被自动检查。

A)下标越界B)格式输入的类型匹配C)初值个数超长D)运算关系

9. 下列有关函数的描述错误的是。

A)形参数组第一维的大小说明可以省略

B)自定义函数中可以有一个以上的return语句

C)任何类型的函数调用都可出现在表达式中

D)对形参变量赋值不会对主调函数造成任何影响

10. 若有定义char str[20]; 下列将字符串―2002.6‖存入str的错误方法是。

A)scanf(―%s‖,str); B)gets(str)

C)strcpy(str, ―2002.6‖) D)str=―2002.6‖

11. 若有宏定义:#define M1(a) (x-a)

#define M2 M1(a)*M1(b)*M1(c)

及变量定义:int a=1,b=2,c=3,x=4;

则执行语句:x=x*M2; 后变量x的值为。

A)108 B)6 C)24 D)1

12. 下列对Turbo C热键与功能的关系描述不正确的是。

A)F7——启动单步跟踪执行B)F9——启动预编译

C)Ctrl+Y——删行D)Ctrl+F7——设置监视变量二、填空题(1分×16=16分)

1. 1. 1. 将代数式a ac

b b

2

4 2-

+

-

写成C的表达式应为。

2. 2. 2. 将条件‖a和b都是正的或都是负的‖写成C逻辑表达式应为。

3. 若有定义int a=2,b=2;则条件表达式a>=b?a+b:3.5的值00 。

4. 若有定义float x, y; 则逗号表达式x=123.4567,y=100,(int)(x*y+0.5)/y的值为。

5. 若有定义float m=321.8765;

则执行语句printf(―%-10.3f%.0f\n‖,m,m); 的输出结果为。

6. 一个for的嵌套循环,其内层for 中的break语句使流程跳出。

7. 若有定义float*p1; int*p2,(*p3)[4],(*p4)( );

则p1、p4分别允许指向printf(―%d,%d,%d‖, sizeof(p1),sizeof(p2),sizeof(p3)); 的执行结果为。

8. 若有定义int i, j,a[3][5],(*p)[5];并有i=j=2; p=a;当p保持不变时,*(p+i)+j与等价,若有p++, p的增量为。

9. 怎样用格式输出函数直接将123×456的结果正确输出?。

10. 若有定义struct recode﹛int num; float pay; char tel[20];﹜r1,r2,r3;怎样用格式输入语句对变量r1的tel成员输入?。各结构体变量r1、r2、r3的存储字节长分别是。

11. 一自定义函数的首部是void fun(int a[ ][4 ],char c[ ],double x)则对该函数的原型声明可

是。

12.在C程序中,用代表函数的指针。

三、阅读题(6分×5=30分)

1. 写出程序的运行结果

main( )

﹛int i,n,s1,s2,s3,sum=0;

for(i=1;i<=3;i++,sum=0)

﹛scanf(―3d%3d%3d%3d‖,﹠n, ﹠s1, ﹠s2,﹠s3);

sum+=s1+s2+s3;

printf(―%4d,%3d,%3d,%3d‖,n,s1,s2,s3);

printf(―%6s\n‖,s1>=50&&s2>=70&&s3>=80 || sum>=220? ―pass‖: ―fail‖);﹜

运行时输入:102054079075 143067075082 181045089091↙

2. 写出程序的运行结果

#define N 8

void fun1(int *);

main( )

﹛int a[N]=﹛55,12,32,67,93,45,10,79﹜,i;

fun1(a);

for(i=0;i

printf(―\n‖);

void fun1(int *p)

﹛int i,t;

t=*(p+N-1);

for(i=N-2;i>=0;i--)*(p+i+1)=*(p+i);

*p=t;

return;

3. 写出程序的运行结果

main( )

﹛void fun 1(int*,int);

int i, fact[3];

for(i=1;i<=5;i=i+2)fun1(fact,i);

for(i=0;i<3;i++)printf(―%d\n‖,fact[i]);

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言大作业报告

目录 一、设计题目 二、目标和需求分析 三、开发工具 四、应用平台 五、程序模块 1、游戏盒子 2、2048 3、扫雷 4、贪吃蛇 六、开发日志 七、程序调试及运行 八、程序开发总结 总结:虽然做出来的东西真的没什么技术水平,但是我们尽量把这个东西的每个方方面面做完整。

目标和需求分析一个小的游戏盒子,可以用来启动其它游戏,当然,其它游戏也是我们大作业的编写内容,平时可以玩玩用来打发时间 用到的工具VS2005 Easyx图形库 Pthread线程库 Hge 分工 秦贤康 组织大家,编写主程序,及构思计划,技术指导 王尧 所有的文件处理,数据算法方面优化 王懿晨 合作2048模块 杨梓晗 图片资源加工,音乐裁剪,按钮制作 程维驰 合作扫雷模块 应用平台:WINDOWS X64

程序功能模块: 一、 安装包:(写入开始菜单快捷方式,桌面快捷方式,开机启动等)//pascal 脚本编写 #define MyAppName "C 大作业" #define MyAppVersion "2.0" #define MyAppPublisher "五人小组" #define MyAppExeName "1.exe" [Setup] AppId={{49DB1DB4-FAE9-4ACB-A4B9-E5C420C5F10B} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={pf}\{#MyAppName} DisableDirPage=yes DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes (剩余代码未全部给出) 安装包 内嵌:C 语言报告 游戏盒子 开机启动,桌面快捷方式等 进入动画,左侧动画 启动模块 通知,和显示游戏信息 2048 扫雷 贪吃蛇 主界面信息显示 通知栏信息显示 意见箱

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题 (10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个 C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B ) Void C ) _3com D ) int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D ) x4=1+2=3; 5、设有定义: float a=2,b=4,h=3;以下 C 语言表达式中与代数式 1 (a b) * h 的计 2 算结果不 相符的是( ) . A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的 3 种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在 while (!x )语句中的 !x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf( “%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B ) 2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf( “%d\n ”,s);} 程序执行后的输出结果是( )

西北工业大学C语言大作业实验报告

学院*****************

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计内容 (3) 1.3开发工具 (3) 1.4应用平台 (4) 2 详细设计 (4) 2.1程序结构 (4) 2.2主要功能 (10) 2.3函数实现 (13) 2.4开发日志 (18) 3 程序调试及运行 (20) 3.1程序运行结果 (20) 3.2程序使用说明 (22) 3.3程序开发总结 (22) 4 附件(源程序) (22)

1 摘要 1.1 设计题目 折半法查找演示程序 1.2 设计内容 本程序是一个演示折半查找算法的演示程序。由用户输入查找的数据表列和查找的数据,系统在将数表排序后可以在屏幕上演示在排序后的表列中按折半查找法查找该数据的具体过程(通过每次查找的中间数据、下次查找表列等,具体效果见下图),支持多次演示、错误提醒,程序暂停演示功能。 1.3 开发工具 Visual C++ 6.0和Win32。

1.4 应用平台 Windows 2000/XP/Vista 32位 2 详细设计 2.1 程序结构 程序功能模块: 本程序主要由五大模块组成:程序说明模块、输入模块、排序模块、折半法查找及显示模块、进程选择模块。各模块的主要功能如下: 程序说明模块:给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。 此部分模块主函数源代码如下: int a[N]; /*存储要查找的数表,用户输入*/ int i,n,num,count; /*count为折半次数计数器,n为数表数据个数,num存储所查数据*/ int top,bottom,mid; char c; /*存储选择函数中的输入的字符y或n*/ int flag=1; /*折半法循环标志变量*/ int loc=-1; /*存储所查找数据位置*/ double k=0; p_s(76);puts("\n"); /*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文) printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n"); puts("\n"); /*程序欢迎语*/ p_s(13); printf("制作者:***************** "); /*作者信息*/ p_s(4); printf("Email:************************ "); /*电子邮件*/

数据库实验5实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:数据库的完整性 班级:软件132 学号:2013122907 姓名:莹莹

一.目的与要求 1.掌握索引创建和删除的方法; 2.掌握创建视图和使用视图的方法; 3.掌握完整性约束的定义方法,包括primary key、foreign key等。 二.实验容 1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。 2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。 3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。 4.建立视图view2,查询所有职工的职工号、和平均工资; 5.建立视图view3,查询各部门名和该部门的所有职工平均工资; 6.显示视图view3的定义; 7.实施worker表的“性别”列默认值为“男”的约束; 8.实施salary表的“工资”列值限定在0~9999的约束; 9.实施depart表的“部门号”列值唯一的非聚集索引的约束; 10.为worker表建立外键“部门号”,参考表depart的“部门号”列。 11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上; 12.删除上面第7、8、9和10建立的约束; 13.解除第11题所建立的绑定并删除规则sex。 三.实验步骤 1 USE factory GO --判断是否存在depno索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='depno') DROP INDEX worker.depno GO --创建depno索引 CREATE INDEX depno ON worker(部门号) GO EXEC sp_helpindex worker GO 2 USE factory GO --判断是否存在no_date索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date') DROP INDEX salary.no_date GO --创建no_date索引

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

C语言程序大作业.doc

大连理工大学C程序设计(大作业)总结报告学生成绩录入处理系统 学生姓名:罗 专业班级: 学号: 联系电话: Email : 完成日期:2015年 5 月29日

一、设计任务 我的程序设计是一个学生成绩录入及处理的程序,该程序包括多种功能,能够满足大多数的学生成绩管理处理。主要能够实现的目的主要有: 第一.学生姓名学号既包括三门成绩等信息的录入,并保存到文件d://score.txt。 第二.对每个学生的成绩进行求平均分及按平均分排序的数字处理。 第三.对输入错误的学生信息加以修改重新排序保存。 第四.增加学生信息,重新排序,加以保存。 第五.按每个学生的平均分进行表格化和图形化处理。 第六.实现某位同学的信息查找,包括姓名,学号,每科成绩及平均分。 以上功能全都可以实现,但是注意录入信息的要求,下面会有注释。 二、程序设计与实现 1.结构框图 下图描述预期实现题目的设计方案或功能设计的组成结构。绘制成框图,如图所示是我设计的成绩信息管理程序设计的结构图示:

2.功能模块设计及其流程图 (1) 数据描述与存储 该学生信息统计系统设计一个全局结构体变量,将学生的姓名,学号,各科成绩及平均分保存在结构体,然后供设计各种程序调用,以完成修改,增加,排序和数据显示的功能。学生成绩数据以二进制存储在d://score.txt文件,可以利用程序随时进行增加和修改,同时它会自动排序。的描述题目所使用的核心数据,如;结构体类型定义及结构体成员含义说明。并说明所使用的数据存储方法,指定文件的路径和文件名,保存数据的格式和读数据的目的。 (2) 结构体定义及介绍 typedef struct rec /*定义一个结构体类型*/ { char name[20]; /*第一个元素为学生姓名,20个字节*/ short number; /*第一个元素为学生学号,2个字节(输入注意不要超出)*/ short score[M]; /*(M为全局3)依次定义三门科目分数:数,英,机*/ float average; /*定义浮点型平均数,保留2位小数,有函数计算赋值*/ }score; score stu[N]; /*(N为全局100)定义全局总数100个学生信息以录入*/ (3)对于该程序的一点说明 1.学号在0~32768之间,请录入前对学号做好数据处理。 2.该系统的成绩满分为一百分制,如有某科成绩不符合应提前处理。 3.录入退出后,同样的数据不需两次输入,可直接运行程序处理及查看。 4.保存退出后请勿删除文件,数据会丢失。 5.柱状图的分辨率在十位数。 (4) 主要函数功能基变量说明

DB1西工大数据库实验一数据库和表的创建与管理

《数据库原理》实验报告 题目:实验一 学号姓名班级日期数据库和表的创建与管理 一. 实验内容、步骤以及结果 1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分) 数据库和表的要求(第四版教材第二章习题5要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表 图S表(供货商表) 图P表(零件表) 图SPJ表(供应情况表) 图J表(工程项目表)

完成以下具体操作: (1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式 是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数 据库的逻辑文件名和物理文件名均采用默认值。 (2)在SPJ数据库中创建如图图的四张表(只输入一部分数据示意即可)。 (3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。(提示:最 好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为 mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。 (5)删除已经创建的工程项目表(J表)。 (6)删除SPJ数据库。(可以在系统默认的数据存储文件夹下查看此时SPJ数据库 对应的mdf,ldf文件是否存在) (7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。(还原数据库) (8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。(附加) (9)将SPJ数据库的文件大小修改为100MB。 (10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类型。 实验具体步骤: (1)创建SPJ数据库:右击数据库-->新建数据库-->填写相应参数-->点击确定。如下图: (2)在SPJ数据库中创建四张表:单击数据库SPJ-->右击‘表’-->新建表-->填写参数-->确定。如下图:

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言大作业报告范文

学院XX学院

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计容 (3) 1.3开发工具 (3) 1.4应用平台 (3) 2 详细设计 (3) 2.1程序结构 (3) 2.2主要功能 (3) 2.3函数实现 (3) 2.4开发日志 (4) 3 程序调试及运行 (4) 3.1程序运行结果 (4) 3.2程序使用说明 (4) 3.3程序开发总结 (4) 4 附件(源程序) (4)

1 摘要 1.1 设计题目 (A)求最大数;(B)高次方数的尾数 1.2 设计容 (A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数1.3 开发工具 Visual C++ 6.0和Win32。 1.4 应用平台 Windows XP 32位 2 详细设计 2.1 程序结构 (A)求最大数

定义变量a、b、c,a从100至999递增,b为555555,用b除以a,判断是否可以整除,若可以,则把a的值赋给c,a自加1;若不可,a自加1。重复以上步骤,直到a>999,输出c。循环语句采用for 循环。 (B)高次方数的尾数

定义变量i、j,i从1至13递增,j初值为1。用j乘以13,用得到的乘积除以1000并取其余数,赋给j,i自加1。重复以上步骤,直到i>13,输出j。循环语句采用for循环。

2.2 主要功能 程序功能:(A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数。 原理和方法: (A)题目的原理和方法:因为要求的是三位数,就用555555从小到大依次除以100到999的所有数,并判断能否整除,最后一个可以整除555555的数即为所求。循环语句采用for循环。 (B)题目的原理和方法:乘积的最后三位数只与乘数和被乘数的后三位数有关,因此用1乘以13,再除以1000并取余数,用余数乘以13,再除以1000并取余数,依次进行下去,累乘13个13后除以1000取得的余数即为所求。循环语句采用for循环。 2.3 函数实现 (A)求最大数 int a,b=555555,c; /*定义变量,赋初值*/ for(a=100;a<=999;a++) /*FOR循环*/ { if(b%a==0) /*利用IF语句判断b是否可以被a整除*/ c=a; /*将555555的约数赋给c*/ } printf("%d\n",c); /*输出c*/ (B)高次方数的尾数 int i,j=1; /*定义变量,赋初值*/ for(i=1;i<=13;i++) /*FOR循环*/ { j=j*13%1000; /*将j乘以13的乘积的后三位数赋给j*/ } printf("%d\n",j); /*输出j*/ 2.4 开发日志 (A)选定这个题目后,我先分析此题用何种算法完成,确定了使用FOR循环并限定除数围,然后画出程序框图,再一步步编写源代码。调试过程很顺利,只有一个地方忘加了“;”。运行程序后,结果非常满意。 (B)这个题目不难,但是也不简便,我想到只取三位数的方法,并使用FOR循环,然后画出程序框图,再一步步编写源代码。调试过程发现对其中一个变量的初值是1还是13有待解决,分析程序后发现应该用1,然后进一步调试,运行,直至结果正确。

C语言程序设计期末考试试题及答案

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

西工大c语言实验100题06

第六次CH1005 #include int main() { int i,a[500]={0},n,*p,j=0,k=0; scanf("%d",&n); for(i=0;i

{ int n; char a[500],b[500]={'\0'},*p1,*p2; gets(a); scanf("%d",&n); p1=a;p2=b; for(p1=p1+n;*p1!='\0';p1++,p2++) *p2=*p1; puts(b); return 0; } #include #include int main() { char str1[50],str2[20]; int m,length; gets(str1); scanf("%d",&m); if((strlen(str1)-m+1)>=20) { printf("ERROR\n"); }else { for(int i=m;str1[i]!='\0';i++) { str2[i-m]=str1[i]; } str2[i-m]='\0'; printf("%s\n",str2); } return 0; } CH1011 #include

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

C语言程序设计期末考试题及答案

装订线

装订线

装订线

订 线

庄子云:“人生天地之间,若白驹过隙,忽然而已。”是呀,春秋置换,日月交替,这从指尖悄然划过的时光,没有一点声响,没有一刻停留,仿佛眨眼的功夫,半生已过。 人活在世上,就像暂时寄宿于尘世,当生命的列车驶到终点,情愿也罢,不情愿也罢,微笑也罢,苦笑也罢,都不得不向生命挥手作别。 我们无法挽住时光的脚步,无法改变人生的宿命。但我们可以拿起生活的画笔,把自己的人生涂抹成色彩靓丽的颜色。 生命如此短暂,岂容随意挥霍!只有在该辛勤耕耘的时候播洒汗水,一程风雨后,人生的筐篓里才能装满硕果。 就算是烟花划过天空,也要留下短暂的绚烂。只有让这仅有一次的生命丰盈充实,才不枉来尘世走一遭。雁过留声,人过留名,这一趟人生旅程,总该留下点儿什么! 生活是柴米油盐的平淡,也是行色匆匆的奔波。一粥一饭来之不易,一丝一缕物力维艰。 前行的路上,有风也有雨。有时候,风雨扑面而来,打在脸上,很疼,可是,我们不能向生活低头认输,咬牙抹去脸上的雨水,还有泪水,甩开脚步,接着向前。 我们需要呈现最好的自己给世界,需要许诺最好的生活给家人。所以,生活再累,不能后退。即使生活赐予我们一杯不加糖的苦咖啡,皱一皱眉头,也要饮下。 人生是一场跋涉,也是一场选择。我们能抵达哪里,能看到什么样的风景,能成为什么样的人,都在于我们的选择。 如果我们选择面朝大海,朝着阳光的方向挥手微笑,我们的世界必会收获一片春暖花开。如果我们选择小桥流水,在不动声色的日子里种篱修菊,我们的世界必会收获一隅静谧恬淡。 选择临风起舞,我们就是岁月的勇者;选择临阵脱逃,我们就是生活的懦夫。 没有淌不过去的河,就看我们如何摆渡。没有爬不过去的山,就看我们何时启程。 德国哲学家尼采说:“每一个不曾起舞的日子,都是对生命的辜负。”让我们打开朝着晨光的那扇窗,迎阳光进来,在每一个日出东海的日子,无论是鲜衣怒马少年时,还是宠辱不惊中年时,都活出自己的明媚和精彩。 时间会带来惊喜,只要我们不忘记为什么出发,不忘记以梦为马,岁月一定会对我们和颜悦色,前方也一定会有意想不到的惊喜。 人生忽如寄,生活多苦辛。 短暂的生命旅程, 别辜负时光,别辜负自己。 愿我们每一个人自律、阳光、勤奋,

C语言大作业(图书管理)

c语言图书管理系统 主要功能: 1. 新进图书基本信息的输入。 2. 显示全部记录 3. 按图书名称查询图书基本信息。 4. 根据图书名称对撤消的图书信息进行删除。 5. 按图书名称从小到大排序。 6. 统计某价格以上的图书数量。 7. 列出所有未借出去的图书信息。 基本信息:图书编号、图书名称、单价、作者、存在状态、借书人姓名、性别、学号等 #include #include #include #include typedef int BOOL; typedef struct bookinfo { char number[15];/*产品编号*/ char name[30];/*产品名称*/ float price;/*单价*/ char auther[20];/*作者*/ BOOL isExit;/*存在状态*/ char lendername[20];/*借书人姓名*/ char lendersex[2];/*借书人性别*/ char lendernum[15];/*借书人学号*/ }BOOKINFO; void menu() { printf("\n\n\n\n\n\n\n"); printf("\t\t\t图书管理系统\n"); printf("\t\t\t1:新进图书基本信息的输入\n"); printf("\t\t\t2:显示全部记录\n");

printf("\t\t\t3:根据图书名称查询图书基本信息\n"); printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n"); printf("\t\t\t5:按照图书名称从小大到排序\n"); printf("\t\t\t6:统计某价格以上的图书数量\n"); printf("\t\t\t7:列出所有未借出去的图书信息\n"); printf("\t\t\t8:退出\n"); } void choice_1_input_new()/*输入新进的图书信息*/ { char choice; FILE *p; BOOKINFO newbook; system("cls"); while(1) { printf("输入图书编号:"); gets(newbook.number); printf("输入图书名称:"); gets(https://www.wendangku.net/doc/3313020590.html,); printf("输入图书单价:"); scanf("%f",&newbook.price); while(getchar()!='\n'); printf("输入图书的作者:"); gets(newbook.auther); printf("输入借书人姓名:"); gets(newbook.lendername); printf("输入借书人性别:"); gets(newbook.lendersex); printf("输入借书人学号:"); gets(newbook.lendernum);

西工大C语言POJ作业

T051.合并字符串 #include #include #include int main() { char a[200],b[100]; gets(a); gets(b); strcat(a,b); puts(a); return 0; } T052.字符串排序

#include #include void sort(char s[10][11]) { int i,j; char t[11]; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(strcmp(s[j],s[j+1])>0) { strcpy(t,s[j+1]); strcpy(s[j+1],s[j]); strcpy(s[j],t); } } int main() { char a[10][11],i; for(i=0;i<10;i++) scanf("%s",a[i]); sort(a); for(i=0;i<10;i++) printf("%s ",a[i]);

printf("\n"); return 0; } T053.特殊要求字符串 #include #include int main() { char s[100],a[100],t; int len,l,i,j; gets(s); len=strlen(s); l=len/2; for(i=0;i

C语言大作业

学院

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计内容 (3) 1.3开发工具 (3) 1.4应用平台 (3) 2 详细设计 (3) 2.1程序结构 (3) 2.2主要功能 (10) 2.3函数实现 (10) 2.4开发日志 (17) 3 程序调试及运行 (18) 3.1程序运行结果 (18) 3.2程序使用说明 (19) 3.3程序开发总结 (20) 4 附件(源程序) (20)

1 摘要 1.1 设计题目 A题算法型:折半查找算法演示程序 B题空间桁架结构节点位移求解 1.2 设计内容 A题: 本程序是一个演示折半查找算法的演示程序。当用户输入查找数据表列和要查找的数据时,程序会演示折半法查找该数的详细过程,并且支持多次查找、错误提示等功能。 B题: 空间桁架结构节点位移求解 1.3 开发工具 Code Blocks 12.11(内置MinGW) 1.4 应用平台 Windows 7 64位 2 详细设计 2.1 程序结构 A题: 程序功能模块: 本程序主要包含六大模块:程序说明模块、输入模块、排序模块、折半法查找模块、选择模块和程序

退出模块。 工程文件结构: 本程序的工程含有6个文件,其中main.cpp、print_stars.cpp、judge.cpp、sort.cpp、putout.cpp5个cpp 文件和include.h1个头文件(参见下图),两者共同存在于工程“折半法查找演示程序”中。其中main.cpp 文件包含了程序的主体部分,程序说明模块、输入、排序、折半查找、选择、程序退出模块按线性排列。其中输入、排序模块执行一次,这般查找、选择模块可多次执行,直到程序退出模块执行。 六大模块说明: (1) 程序说明模块: 给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。此部分模块主函数源代码如下: int a[N]; /*存储要查找的数表,用户输入*/ int i,n,num,count; /*count为折半次数计数器,n为数表数据个数,num存储所查数据*/ int top,bottom,mid; char c; /*存储选择函数中的输入的字符y或n*/ int flag=1; /*折半法循环标志变量*/ int loc=-1; /*存储所查找数据位置*/ double k=0; p_s(76);puts("\n"); /*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文)

西工大数据库实验预习报告04

实验4:存储过程/触发器/ODBC数据库编程 2012302516 10011206 邹维韬 1.1.目的与要求 1.掌握查看一些系统存储过程的用法。 2.掌握存储过程的创建和使用方法以及步骤。 3.掌握触发器的创建和使用方法以及步骤。 4.掌握ODBC数据源的配置,了解ODBC编程技术。 1.2.实验准备 1.了解存储过程(系统存储过程以及用户自定义存储过程)基本概念和类型。 2.了解创建存、查看、执行、修改和删除储过程的SQL语句的基本语法。 3.了解触发器的基本概念和类型。 4.了解创建、查看、修改和删除触发器触发器的SQL语句的基本语法。 5.了解ODBC数据库配置和编程知识。 1.3.实验内容 1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) 2.存储过程的创建与使用:(共计45分) (1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供 应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名 称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10分)(2)创建一个带有输出游标参数的存储过程jsearch2,功能同1),执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控 制台。(10分) (3)使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。(10 分) (4)使用系统存储过程sp_helptext查看存储过程jsearch, jmsearch的文本信息。(5分) (5)执行jmsearch存储过程,查看北京供应商的情况。(5分) (6)删除jmsearch存储过程。(5分) 3.触发器的创建与使用:(共计30分,每小题5分) (1)在student数据库中建立一个名为insert_s的INSERT触发器,存储在S表中。该触发器的作用是:当用户向S表中插入记录时,如果插入的sdept值

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