大连东软信息学院C语言指针练习2016.docx

时间:2019-05-12 15:32:22下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《大连东软信息学院C语言指针练习2016.docx》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《大连东软信息学院C语言指针练习2016.docx》。

第一篇:大连东软信息学院C语言指针练习2016.docx

一、Make a choice 1.For the same data type pointer variable, which operator can notused in C program.A.+

B.-

C.=

D.== 2.when0<=i<10, for the following statements, which reference is wrong to reference array elements.int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;p=a;A.*(a+i)

B.a[p-a]

C.p+i

D.*(&a[i])3.when0<=i<10, for the following statements, which reference is wrong to reference the address of array elements.int a[]={1,2,3,4,5,6,7,8,9,0}, *p,i;

p=a;

A.&(a+1)

B.a++

C.&p

D.&p[i] 4.What is the result for the following program? #include main(){ int a[]={1,2,3,4,5,6},*p;

p=a;

*(p+3)+=2;printf(“%d,%dn”,*p,*(p+3));}

A.0,5

B.1,5

C.0,6

D.1,6 5.what is the result for the following program? #include main(){ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf(“%dn”,p[3][2]);}

A.输出项不合法

B.6

C.8

D.12 6.For the following statements, what’s the value of(p1-p2)? int a[10], *p1, *p2;p1=a;p2=&a[5];

A.5

B.6

C.10

D.没有指针与指针的减法

7.for this function prototype: void adder(int *ptr,int b);if there are two integers: int op1=2;int op2=4;which statement of function call is right?

A:adder(*op1,op2);B:adder(op1,op2);C:adder(&op1,op2);D:adder(&op1,&op2);8.What does the following program outputs to screen_____ voidToSrn(int *);main(){ int a=8;int *ptr=&a;ToSrn(ptr);} voidToSrn(int *ptr){ printf(“%p”,&a);} A:compile error,can not be run B:8 C:16 D:address of a 9.Assuming int *p,a=4;p=&a;which of the following statements is all means address A:a,p+1 B:&a,*p C:&a,p D:*a,p 10.Assuming inta[10],*p;which one is right A:*p=&a[0];B:*p=a;C:p=a[0];D:p=&a[0];11.Assuming :int a[10],*p=a;which one is the address of a[9] A:a[0]+9 B:&(p+9)C:*(p+9)D:a+9 12.Assuming:

char s1[]=“Hello”,s2[10],*s3=“HelloWorld”,*s4;which one of the following statements is correct? A:strcpy(s1[0],“Morning”);B:s2=“Morning”;C:strcpy(s3,“Morning”);D:strcpy(s4,“Morning”);13.For the following statements,after execution the statement a=p+2;what’s the value of a[0]? float a[3]={1.2,45.6,-23.0};float *p=a;

A.1.2

B.45.6

C.-23.0

D.语句有错

14.What format specifiers(in order)should be used in the printf()statement in thefollowing program? Note that in the program the correct format specifiers have beenreplaced by Z.#include int main(void){ int x = 5;int *x_ptr = &x;printf(“%Z, %Z, %Z, %Zn”, x, *x_ptr, &x, x_ptr);}(a)%f, %p, %d, %p(b)%d, %d, %p, %p(c)%d, %p, %d, %p(d)%p, %d, %d, %p

二、Fill the blank.1.the result of printf(“%sd”,“abcd”);is __【1】___。2.A pointer is a special type of variable which stores the

【1】

of a memory location.3.assuming:int a[]={1,3,5,7,9,11},*p=a;and the value of *p is _【1】__.the value of *(a+5)is __【2】

4.For the following statement, int a[]={8,1,2,5,0,4,7,6,3,9};What’s the value of a[*(a+a[3])]?._____________

二、read the following programs.1.On a machine in which addresses are 4 bytes, what is printed by the following program: #include int main(void){ char fun[] = “Programming is fun.”;char favorite[] = “My favorite class is programming.”;char *x = fun;printf(“%dn”, sizeof(fun));printf(“%dn”, sizeof(favorite));printf(“%dn”, sizeof(x));}

2.What does the following program print? #include int main(void){ int data[] = {1, 2, 3, 4, 5, 6, 7};int *ptr = data;int i;printf(“ i *ptrn--------n”);for(i = 2;i >-4;i--){ printf(“%2d, %2dn”, i, *ptr);ptr+=i;} }

三、write the following program.1.Rewrite the following program such that the function has a return type of void andthe variable y gets its value using pointers.#include intdbl(intnum);int main(void){ int x = 13;x = dbl(x);printf(“x doubled is %dn”, x);} intdbl(intnum){ return 2*num;}

2.Write a program that has a function that when passed a string will print every fourthcharacter of the string.In main()you should create the string ”This is an examplestring.” and pass this to your function to be printed.3.Change the program below to print I love programming.You should do this byusing the values in lovetext to change hatetext.Hint: think about the relationshipbetween the index values of the letters in love and the index values for the word hate.This can be done without creating any new variables.#include int main(void){ int i;charhatetext[] = “I hate programming.”;charlovetext[] = “love”;/* Your code goes here.*/ printf(“%sn”, hatetext);}

4.Write a program that has a function that when passed a string will print every fourthcharacter of the string.In main()you should create the string ”This is an examplestring.” and pass this to your function to be printed./*Void printString(char *p);*/ Void printString(char *p){ Int i=0,len=0,length=strlen(p);While(*p!=NULL&&len

{ Printf(“%c”,*p);P+=4;Len+=4;} } main(){ Char str[]=”This is an examplestring.”;printString(str);} 5./* Write a program.In main(), declare an integer array,and initialize the array through keyboard.Create a multiply()function that when given the array and the number of array elements,in which can double the value of the array elements(that is a[i]*2).Also create another print()function for printing the array elements.Call the two functions in main function.Tip: when running the program, input n with 14.*/

#include

#define N 14

void multiply(int a[],int n);void print(int *p);

main(void){ int a[N],i;

for(i=0;i

{ printf(“n No.%d: ”,i+1);scanf(“%d”,&a[i]);

}

/*(1)call the multiply()function*/

/**********Program**********/ multiply(a,N);

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

/*(2)call the print()function*/

/**********Program**********/ Print(a);

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

}

void multiply(int a[],int n){ int I;

/*(3)double the value of the array elements*/

/**********Program**********/

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

} void print(int *p){ int i;

printf(“nThe output values after multiply are:n”);

/*(4)output the value of the array elements*/

/**********Program**********/

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

}

1.Write a program that has a function that when passed a string will print every fourthcharacter of the string.In main()you should create the string ”This is an examplestring.” and pass this to your function to be printed./*Void printString(char *p);*/ Void printString(char *p){ Int i=0,len=0,length=strlen(p);While(*p!=NULL&&len

{ Printf(“%c”,*p);P+=4;Len+=4;} } main(){ Char str[]=”This is an examplestring.”;printString(str);} 2./* Write a program.In main(), declare an integer array,and the array

initialize through keyboard.Create a multiply()function that when given the array and the number of array elements, in which can double the value of the array elements(that is a[i]*2).Also create another print()function for printing the array elements.Call the two functions in main function.Tip: when running the program, input n with 14.*/

#include

#define N 14

void multiply(int a[],int n);void print(int *p);main(void){

for(i=0;i

{ printf(“n No.%d: ”,i+1);scanf(“%d”,&a[i]);int a[N],i;

}

/*(1)call the multiply()function*/

/**********Program**********/ multiply(a,N);

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

/*(2)call the print()function*/

/**********Program**********/ Print(a);

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

}

void multiply(int a[],int n){

int I;

/*(3)double the value of the array elements*/

/**********Program**********/

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

} void print(int *p){

printf(“nThe output values after multiply are:n”);

int i;

/*(4)output the value of the array elements*/

/**********Program**********/

/********** End **********/ }

第二篇:大连东软信息学院C语言实验五-数组

试验五

数组

一、实验目的

1.了解数组的特点,掌握一维数组的定义、初始化及其使用方法。2.掌握字符串的输入输出方法,熟悉常用的字符串操作函数。3.掌握二维数组的定义、初始化及其使用方法。

二、所涉及到的知识点

1.一维数组的定义。考虑数组定义的格式,数组元素在内存中的存储形式及地址分配,数组名的意义,数组元素的维数(数组元素的个数)等。

2.一维数组的初始化。数组初始化赋值的形式,考虑初始值多于数组维数,少于数组维数以及数组维数缺省的情况下,初始赋值的意义理解。

3.二维数组的定义。考虑二维数组定义的格式,尤其是行和列变化,二维数组在内存中如何存储,地址如何分配,二维数组如何转化为一维数组,数组下标如何变化?

4.二维数组的初始化。二维数组初始化的形式,考虑行下标和列下标在什么情况下可以缺省,缺省时的意义有何不同?

5.字符数组的定义和初始化。理解字符数组和字符串之间的联系和区别。尤其是字符串结束标志‘’的意义。分析字符串长度、字符串所占内存空间的大小这两种描述的区别。6.字符数组的输入输出,字符串的输入输出,并比较二者的异同。

三、实验内容

(一)阅读并调试下列程序,给出程序结果,并指明程序的功能是什么。1.求最大值问题。#include “stdio.h” #define N 10 void main(){

int a[N]={20,9,10,-16,-9,18,96,7,11,33};

int i,max=a[0],m=0;

for(i=1;i

if(max

{

max=___33_____;/* 将比较后的数组元素的较大值赋给max变量*/

m=___9_______;/*将比较后较大的数组元素下标赋给m变量*/

}

printf(“max=%d,为第%d个元素n”,max,m+1);} 运行结果:

程序功能:求数组中的较大值及其是第几个元素 2.数据分类问题。#include “stdio.h” #define N 10 /*这是宏定义语句,表示后面程序中出现的N均为10*/ void main(){

int a[N],b[N],i,j=0,k=N-1;

printf(“请输入数据:n”);

for(i=0;i

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

for(i=0;i

{

printf(“%d ”,a[i]);

if(a[i]<0)

b[j++]=a[i];

/* 将负数放在b的前部 */

else

b[k--]=a[i];

/* 将其他数放在b的后部 */

}

printf(“n”);

for(i=0;i

printf(“%d ”,b[i]);} 程序调试

① 调试程序时通常先将N定义为一个小数值,当程序调试成功后再将N定义为常数10,这样可以提高程序的调试效率。

② 在设计调试用数据时,应考虑各种数据情况,以便提高程序的可靠性。

程序功能:将所输入的数据按输入排一遍,换行后倒着排一遍。运行结果:

A.当输入的数据数超过十个时会自动去除多余的数。

B.当输入的数据数小于十个时回车,将无反应,直到输满十个数为止,回车多少不影响。

3.字母统计问题。输入一个长度小于20的字符串,统计其中字母的个数。/* 字母统计问题程序 */ #include “stdio.h” void main(){

char s[20];

int i=0,counter=0;

printf(“请输入字符串:n”);

gets(s);

while(s[i]!='')

{

if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')

counter++;

i++;

}

printf(“Total: %dn”,counter);} 程序调试

① 运行程序,输入一个长度不足20的字符串,察看并分析程序运行结果。

② 运行程序,输入一个长度恰好是20的字符串,察看并分析程序运行结果。

③ 运行程序,输入一个长度超过20的字符串,察看并分析程序运行结果。

④ 运行程序,输入一个全是字母的字符串,察看并分析程序运行结果。

⑤ 运行程序,输入一个没有字母的字符串,察看并分析程序运行结果。

⑥ 运行程序,只输入一个回车符,察看并分析程序运行结果。

⑦ 运行程序,输入你认为最有特点的一个字符串,察看并分析程序运行结果。

运行结果: 1’

2’

3’第一次运行后能正确显示,按任意键 TC2.0 直接退出,郁闷中~~~~~ 4’

和1’

2’

运行一样 5’

只要输入数字,无论多少,是否有空格,结果均显示 0 ~~(上图为其中的一种情况)

6’

7’以上均为本人最感兴趣的字符串~~~~O(∩_∩)O~~~

超强分析:根据多种调试运行结果得知 A.Turboc2.0增加了编程者的难度(必须在输入时检查是否越界); B.第3’ 种情况是因为编译器拒绝运行(编译出错)

说明:TurboC2.0设计者认为字符串越界应当被限制。C..执行程序,进行不同长度字符串测试时,多次出现跳出编程环境即第 3’ 种情况

说明:字符串越界的确对内存数据有破坏性作用。

D.所以只能得出TurboC2.0在此方面有缺陷!

4.奇偶数问题。设有一维整型数组共有20个元素,且偶数与奇数各占一半,将该数组变换为2×10的二维数组且偶数和奇数各成一行。/* 二维数组问题程序 */ include “stdio.h” void main(){

int a[20],b[2][10];

int i,j,col1=0,col2=0;

printf(“请输入数据:n”);

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

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

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

{

if(a[i]%2==0)

b[0][col1++]=a[i];

/* 偶数存储在b[0]数组 */

else

b[1][col2++]=a[i];

/* 奇数存储在b[1]数组 */

}

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

{

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

printf(“%6d”,b[i][j]);

printf(“n”);

} } 程序调试

① 输入一组数据,其中偶数个数与奇数个数相等,察看并分析程序的运行结果。

运行结果:

② 输入一组数据,其中偶数个数与奇数个数不相等,看程序能否正常运行,并对运行结果进行分析。

运行结果:

分析:A.当按要求给出数据时可按图一正常运行。

.B.当奇偶数目不等时,少的部分 随即 补数,多出的部分按输入先后顺序舍去后输入的(上图2为期中一种情况)

③ 调试完善程序,使得对任何输入数据,程序都能正常运行:或者给出一个正确的执行结果,或者给出一个恰当的提示信息。

(二)编制下列程序

1.只使用一个一维数组,实现本实验的数据分类问题。

2.分别使用scanf()函数的“%c”格式和“%s”格式输入字符串,实现本实验的字母统计问题。

编制结果: %s 型: #include “stdio.h” void main(){

char s[20];

int i=0,counter=0;

printf(“Please input charater:n”);

scanf(“%s”,s);

while(s[i]!='')

{

if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')

counter++;

i++;

}

printf(“Total:%dn”,counter);

getch();} 由于时间,请谅解%c 没弄好~~~上课补上,谢谢~~~ 3.修改奇偶数问题程序,使得一维整型数组的20个元素保存在10×2的二维数组中,且偶数与奇数分别存储在两列上。

编制结果: #include main(){

int a[20],b[10][2];

int i,j,col1=0,col2=0;

printf(“Please input needed date:n”);

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

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

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

{

if(a[i]%2==0)

b[col1++][0]=a[i];

else

b[col2++][1]=a[i];

}

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

{

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

printf(“%6d”,b[j][i]);

printf(“n”);

}

getch();}

四、思考题 1.为什么要引入数组?引入数组的意义是什么?要从数组的定义和数组元素的引用去分析。

答: 引入数组主要是为了提高编程效率。

数组是把具有相同数据类型的若干变量按有序的形式组织起来,以便于程序处理,这些数据元素的集合就叫数组。

2.如何理解一维数组的维数和二维数组的维数。

答: 一维数组来说它并不具有维数,一维数组只是由单一的同一类型的数组成。

而二维数组的维数就具有了意义,可以理解它的元素按行和列组成了一个平面矩阵,它所谓的二维即为行和列。

3.字符数组和字符串的联系和区别是什么?从他们的定义和输入输出来分析。

答: 字符数组和字符串在内存空间中都存放了一串字符。

而字符数组可能因为定义时方括号数值的多少而在内存空间存放了“”。

总结:1.请问老师何时多讲一些题,何时把实验讲一下。谢谢~~ 2.截屏 蛮帅的!

3.严正声明:以上均为本人劳动成果,若有雷同,此版本为正版!

----李睿阳 2009/12/18

第三篇:大连东软信息学院oracle选择题汇总

第7章

物理存储结构

(1)关于联机重做日志,以下哪两个说法是正确的?BC A.所有日志组的所有文件都是同样大小 B.一组中的所有成员文件都是同样大小 C.成员文件应置于不同的磁盘 D.回滚段大小决定成员文件大小

(2)DBA使用哪个命令显示当前归档状态?A A.ARCHIVE LOG LIST

B.FROM ARCHIVE LOGS C.SELECT * FROM V$THREAD

D.SELECT * FROM ARCHIVE_LOG_LIST(3)创建一个数据库需要多少个控制文件?A A.

1B.2

C.3

D.0(4)将下句补充完整:控制文件的建议配置是C A.每数据库一个控制文件

B.每磁盘一个控制文件 C.二个控制文件置于二个磁盘

D.二个控制文件置于一个磁盘(5)当创建控制文件时,数据库必须处于什么状态?B A.加载

B.未加载

C.打开

D.受限

(6)哪个数据字典视图显示数据库处于归档状态?C A.V$INSTANCE

B.V$LOG

C.V$DATABASE

D.V$THREAD(7)把多路镜像控制文件存于不同磁盘最大的好处是B A.数据库性能提高

B.防止失败

C.提高归档速度

D.能并发访问提高控制文件的写入速度

(8)哪个文件用于记录数据库的改变,并且用于实例的恢复?B A.Archive log file B.Redo log file

C.Control file D.Alert log file(9)一个实例可以建立几个归档进程?C A.5

B.4

C.10

D.取决于操作系统

(10)定义归档目标地址时,哪两个参数不能一起使用?AB

AC A.LOG_ARCHIVE_DEST and LOG_ARCHIVE_DUPLEX_DEST B.LOG_ARCHIVE_DEST and LOG_ARCHIVE_DEST_1 C.LOG_ARCHIVE_DEST and LOG_ARCHIVE_DEST_2 D.以上都不是;可以指定所有 的归档参数

第八章

逻辑存储结构

(1)段的集合称为C A.区

B.段C.表空间

D.数据库(2)当数据库崩溃,何时使用回滚信息?C A.在崩溃之前 B.恢复完成之后

C.数据库重新打开之后、恢复之前 D.数据库崩溃后回滚信息不被使用(3)数据字典表和视图存储在B A.USERS表空间B.SYSTEM表空间

C.TEMPORARY表空间

D.以上三个中任意(4)PCTFREE与PCTUSED之和不应超过A A.100

B.50

C.25

D.10(5)数据块的哪三个部分合称为块头部?C A.表目录、行目录和行数据 B.标题、表目录、空闲区 C.表目录、行目录、标题 D.块头部、行数据、行头部

(6)数据库打开时,以下哪个表空间必须联机?A A.SYSTEM

B.TEMPORARY C.ROLLBACK

D.USERS(7)指定哪个表空间参与排序操作,可以提高排序效率?B A.SYSEM B.TEMPORARY C.ROLLBACK D.USERS(8)临时表空间中用于排序的段是何时创建的A A.排序操作开始的时候

B.临时表空间创建的时候

C.当排序操作需要内存操过1KB的时候。

D.上述所有选项。

(9)以下哪个段是自管理的?B A.TEMPORARY B.ROLLBACK

C.CACHE

D.INDEX(10)如果未定义临时表空间,哪一个会作为默认的临时表空间?D A.ROLLBACK B.USERS C.INDEX D.SYSTEM(11)回滚段的作用是D A.数据的读一致性(12)回滚段存储A A.事务修改的数据原值 B.事务修改的数据新值 C.事务修改的数据原值和新值 D.以上都不是

B.事务回滚

D.以上都是 C.数据库恢复

第9章 数据库实例

(1)Oracle实例是D A.Oracle 内存结构 B.Oracle I/O 结构 C.Oracle 后台进程

(2)SGA区包括D A.数据高速缓冲区 B.共享池

C.重做日志缓冲区

D.以上都是

(3)最近使用过的SQL语句存储在B A.共享池

B.数据高速缓冲区 A.DBWR B.DBCM

C.私有全局区

D.用户全局区 C.LGWR

D.SMON(4)以下哪个不是Oracle后台服务进程?B(5)以下哪个是合法的Oracle后台服务进程?D A.ARCH B.LGWR C.DBWR D.以上都是(6)将修改过的数据块写入数据文件的进程是A A.DBWR

A.DBWR B.LGWR

B.SMON

C.PMON

C.CKPT

D.SMON D.以上都不是(7)已提交的事务所做的改变由哪个进程记录?D(8)Oracle事务提交即B A.数据由DBWR进程写入磁盘文件 B.LGWR进程成功写入日志 C.PMON 进程提交 D.SMON 进程写数据

(9)回收表空间碎片的进程是___________B A.PMON B.SMON

C.DBWR D.ARCH(10)管理用户会话连接的进程是______________A A.PMON B.SMON C.SERV

第10章 模式对象

D.以上都是

D.NET8

(1)用于删除约束的命令是哪一个?C A.ALTER TABLE MODIFY CONSTRAINT

B.DROP CONSTRAINT C.ALTER TABLE DROP CONSTRAINT

D.ALTER CONSTRAINT DROP(2)哪个不是ROWID的组成部分?A A.表空间

B.文件编号

C.对象编号

D.块内行号(3)唯一值约束和主键约束的区别是什么?D A.唯一值约束建立唯一索引、主码约束建立非唯一索引 B.主码列可以为空、唯一值约束的列不可以为空

C.主码约束可以使用已有的索引、唯一值约束总是创建索引 D.唯一值约束的列可以为空、主码列不可以为空(4)什么是模式?B A.数据库对象的物理组织结构

B.数据库对象的逻辑组织结构 C.索引模式 D.以上都不是

(5)位图索引适合建于怎样的列?B A.索引基数高

B.索引基数低

C.插入率高

D.修改率高(6)选择2个可以被PUBLIC用户组拥有的模式对象。AC A.数据库链接

B.回滚段

C.同义词

D.表(7)ALTER TABLE命令不能用于B A.将一个表移动到其他的表空间中 B.修改表的初始分区大小 C.修改表名 D.禁用触发器

(8)哪个约束不会自动建立索引?B A.主码

B.外码

C.唯一(9)哪个不是建立分区表的方法?C A.范围

B.列表

C.函数

D.散列

书上218 11 12

14题

第11章SQL语言基础

(1)哪个单行函数能够得到字符串的一部分?B A.INSERT B.SUBSTR C.LPAD

D.LEAST(2)哪个函数接受任何类型的参数,可以多选。BD A.SUBSTR

B.NVL C.ROUND

D.DECODE

E.SIGN(3)SIGN(ABS(NVL(-23,0)))的返回值是A A.

1B.32

C.-1

D.0

E.NULL(4)哪个函数能返回字符串的首字符,选择2个。BC A.LTRIM

B.SUBSTR

C.RTRIM

D.INSERT E.MOD(5)哪行代码有错误?C A.SELECT dname,ename

B.FROM emp e,dept d C.WHERE emp.deptno=dept.deptno

D.ORDER BY 1,2(6)哪个语句不会建立隐式事务?E A.INSERT

B.UPDATE

C.DELETE

D.SELECT FOR UPDATE E.以上语句都会建立隐式事务(7)以下查询语句是哪种连接?B SELECT dname,ename FROM dept d,emp e WHERE d.deptno=e.deptno ORDER BY dname,ename;A.自连接

B.等值连接

C.外连接

D.不等值连接(8)使用多表查询时,在哪个子句指定多个表的名字?D A.HAVING

B.GROUP BY

C.WHERE D.FROM

(9)如果查询表A(有3行数据)和表B(有4行数据),使用select * from a,b,返回的查询结果有多少行?D A.7

B.1

C.0

D.12(10)你需要把NEW_CUST表中的新客户信息导入CUST和CUST_SPECIAL表,如果客户信誉度大于10000,需要导入CUST_SPECIAL表,所有新客户信息都要导入CUST表,使用哪种技术可以尽快完成导入?C A.外部表

B. MERGE 命令

C.INSERT多表插入命令

D.带有 WITH CHECK OPTION子句的INSERT命令(11)关于以下SQL语句的作用正确的说法是D ALTER TABLE hr.empSET UNUSED(mgr_id);A.EMP表上的同义词需要被重建 B.MGR_ID列上的约束都被取消

C.任何包含MGR_ID列的视图都必须删除和重建

D.MGR_ID列的索引仍然有效直到执行DROP UNUSEDCOLUMNS命令(12)什么情况下在GROUP BY子句中使用ROLLUP?A A.对每组进行横向统计和不分组统计 B.对GROUP BY指定的列进行分组智能统计 C.对GROUP BY指定的列从右到左分组统计 D.对GROUP BY指定的列进行横向和纵向分组统计(13)关于子查询以下哪两种说法是正确的?BD A. 外层查询返回结果之后,执行内层查询 B. 先执行子查询,再执行外层查询

C. 对于子查询返回的结果,外层查询只执行一次 D. 外层查询返回的每行结果都与内层查询结果进行比较

(14)OE和SCOTT是数据库用户,ORDERS表被OE所拥有。DBA执行以下操作会导致:A CREATE ROLE r1;

GRANT SELECT, INSERT ON oe.orders TO r1;GRANT r1 TO scott;

GRANT SELECT ON oe.orders TO scott;REVOKE SELECT ON oe.orders FROM scott;

A. SCOTT能查询OE.ORDERS; B. SCOTT不能查询OE.ORDERS;

C. REVOKE命令回收了SCOTT和R1的SELECT权限; D. REVOKE命令会发生错误,因为SELECT权限已被授予R1。

书上 259页11至18题

第13章PL/SQL命名对象

(1)在SQL*Plus环境中,删除触发器trg_emp的命令是__________A A.DROP TRIGGER trg_empB.DELETE TRIGGER trg_emp C.REMOVE TRIGGER trg_emp

D.ALTER TRIGGER trg_emp REMOVE(2)关于触发器哪句是正确的?B A.DELETE语句触发应用触发器; B.INSERT语句触发数据库触发器 C.UPDATE语句触发系统触发器

D.SELECT语句触发INSTEAD OF触发器(3)关于触发器,哪三句是正确的?ACD A.触发器是一个PL/SQL块、C或Java编写的过程,与表、视图、模式或数据库相关联。

B.当特定的事件发生时,触发器需要被显式地触发。C.当特定的事件发生时,触发器隐式地执行。

D.当发生数据操纵事件(如DML事件)或系统事件(如登录数据库、关闭数据库)时,触发器被触发。

E.建立在模式上的触发器被所有用户的任意事件触发;建立在数据库上的触发器被特定用户的任意事件触发。

(4)关于包的重载哪两种说法是正确的?AE A.只有局部子程序或者包中定义的子程序可以重载 B.函数名相同、仅返回值类型不同可以对它们进行重载 C.名称、参数个数、类型、顺序都相同的子程序可以重载 D.名称相同、参数个数或类型相同的子程序可以重载 E.子程序名相同、参数个数、类型或顺序不同可以重载(5)下面关于包的描述正确的是?D A.包可以嵌套。

B.可以向包传递参数。C.包在每次调用是加载到内存中。

D.包可以被多个应用共享。(6)下面关于包的描述正确的是?CE A.包规范和包体都是包的必需组成部分。B.包规范是可选的,但包体是必需的。C.包规范是必需的,但包体是可选的。D.在数据库中,包规范和包体存储在一起。E.在数据库中,包规范和包体是分开存储的。

(7)EMP表上有一个行级前触发器,触发器中包含一条对EMP表的查询语句,确保工资的值在岗位最高工资和最低工资之间,当修改EMP表中的工资时,会发生什么?C A.触发器成功执行

B.没有触发,因为它由行级AFTER UPDATE事件触发

C.触发器执行失败,因为对正在执行UPDATE操作的表进行SELECT操作是不允许的

D.触发器执行失败,因为不能在BEFORE UPDATE触发器中使用MIN、MAX函数

(8)数据库触发器的哪一部分决定触发器体执行的次数?A A.触发器类型

B.触发器体

C.触发事件

D.触发时间(9)有一个函数CALCTAX CREATE OR REPLACE FUNCTION calctax(sal NUMBER)RETURN NUMBER IS BEGIN

RETURN(sal * 0.05);END;

在SQL*PLUS环境执行该函数的正确方法是E A.执行命令 CALCTAX(1000);.B.执行命令EXECUTE FUNCTION calctax;.C.建立SQL*Plus环境变量X,执行命令 :X := CALCTAX(1000);.D.建立SQL*Plus环境变量X,执行命令 EXECUTE:X := CALCTAX;.E.建立SQL*Plus环境变量X,执行命令 EXECUTE:X := CALCTAX(1000);(10)如果执行语句SELECT…FOR UPDATE则必须A A.在事务结束时执行COMMIT或ROLLBACK,即使没有数据改变 B.修改选择的数据,然后提交或回滚以结束事务

C.在事务结束时执行COMMIT或ROLLBACK,只有当数据改变的情况下 D.没有数据改变就不存在事务,所以不必执行COMMIT或ROLLBACK

第14章 数据库启动与关闭

(1)实例启动时数据库所处的状态是C A.MOUNT

B.OPEN C.NOMOUNT

D.None(2)数据库启动时,如果一个数据文件或日志文件不可用,会出现什么结果?B A.Oracle返回警告信息并打开数据库。B.Oracle 返回警告信息,不打开数据库。C.Oracle 返回警告信息,并进行数据库恢复。D.Oracle忽略不可用的文件。

(3)受限会话的系统权限应授予哪些用户?C A.在客户端与服务器之间通过SQL*NET 或NET8传输数据,需要特别安全保护的用户。B.执行数据导入、导出的DBA用户。C.上面两类用户都包括。D.上面几项都不正确。

(4)启动数据库时,如果一个或多个CONTROL_FILES参数指定的文件不存在或不可用,会出现什么样的结果?A A.Oracle返回警告信息,但不加载数据库。B.Oracle返回警告信息,并加载数据库。C.Oracle忽略不可用的控制文件。

D.Oracle 返回警告信息,并进行数据库恢复。

(5)Bob试图正常关闭数据库,Oracle说实例处于空闲状态,他试图启动数据库,Oracle说数据库已启动,Bob最好使用什么命令强制关闭数据库?B A.NORMAL B.ABORT C.IMMEDIATE D.NONE(6)Tom发出启动数据库的命令,实例和数据库经过怎样的过程最终打开?B A.OPEN, NOMOUNT, MOUNTB.NOMOUNT, MOUNT, OPEN C.NOMOUNT, OPEN, MOUNT D.MOUNT, OPEN, NOMOUNT

(7)Diane是一个新DBA,当数据库服务器正在运行时她发出了关闭数据库的命令,等一会儿,她发现Oracle正在等待所有用户主动断开,她使用的是哪一个关闭命令?A A. NORMAL B.ABORT C.IMMEDIATE D.NONE

(8)下面哪个脚本文件用于创建数据字典视图?B A.A.sql.bsq B.catalog.sql C.utlmontr.sql D.catproc.sql

(9)为了执行一次完整的数据库介质恢复操作,数据库必须处于那种状态?B A.处于Mount状态,并且使用RESETLOG方式打开数据库。B.处于Mount状态,但不打开数据库。

C.处于Mount状态,并且使用 ARCHIVELOG方式打开数据库。D. 不能执行完整的数据库介质恢复操作。

(10)数据库启动过程中哪一步读取初始化参数文件?C A.数据库打开

B.数据库加载 C.实例启动 D.每个阶段

第15章 安全管理

(1)创建用户命令中DEFAULT TABLESPACE子句指定_______的位置。A A.用户创建的数据库对象 B.用户创建的临时对象 C.用户创建的系统对象 D.以上都不是

(2)资源文件中SESSIONS_PER_USER限制了什么?B A.数据库的并发会话数量 B.每用户会话数量 C.每用户进程数量 D.以上都不是

(3)哪个参数限制用户在断开前的最大空闲时间?A A.IDLE_TIME

B.DISCONNECT_TIME C.CONNECT_TIME

D.以上都不是

(4)使用ALTER USER命令时,以下哪个子句有错误?A A.ADD QUOTA 5M

B.IDENTIFIED BY usera

C.DEFAULT TABLESPACE SYSTEM D.以上都不是(5)哪个视图包含所有概要文件的资源使用参数?B A.DBA_PROFILE

B.DBA_PROFILES C.DBA_USERS

D.DBA_RESOURCES(6)以下哪个不是系统权限?A A.SELECT B.UPDATE ANY

C.CREATE VIEW

D.CREATE SESSION(7)创建用户的命令中哪个子句限制用户对象在数据库占用的空间?D A.Size

B.NEXT_EXTENT C.MAX_EXTENTS D.QUOTA(8)对表空间配额的分配限制了哪个操作?D A.UPDATE B.DELETE

C.CREATE

D.以上都是(9)概要文件不能限制________。D A.CPU 占用时间 B.最大数据库连接时间 C.最大会话空闲时间

D.读取数据块时间(10)以下哪个不是角色?D A.CONNECT

B.DBA

C.RESOURCE

D.CREATE SESSION

第16章 备份与恢复

用户错误发生的两个原因是(选择二个)AD A.错误数据被提交 B.操作系统错误 C.权限不足 D.表被错误截断 E.应用文件被误删除 F.应用程序遇到寻址异常

(1)错误日志中包括哪种数据库备份活动的信息?B A.数据文件开始、结束备份状态 B.表空间开始、结束备份状态 C.数据库备份状态由打开到关闭 D.对数据库的文件进行操作系统备份

(2)在哪种情况下必须对只读表空间进行回滚?(选二种)CD A.恢复可读写的表空间;

B.恢复控制文件中所没有的表空间; C.恢复只读表空间,在上次备份时也为只读; D.恢复可读写的表空间,在上次备份时为只读; E.恢复只读表空间,在上次备份时为可读写。

(3)一个表空间由于错误而不可用,数据库工作在非存档模式,管理员应如何使数据库可用?B A.进行数据库恢复 B.进行数据库完全恢复

C.用之前的数据库完全备份还原数据文件、重做日志文件和控制文件 D.无法使数据库可用

(4)为什么不建议使用手动归档?C A.需要额外的磁盘资源 B.需要更多的后台进程

C.管理员需要发出SQL命令归档联机日志文件 D.需要编写操作系统脚本以拷贝联机日志文件

(5)数据库处于存档模式,可进行哪三种类型的备份?(选三项)AB A.热备份

B.数据库关闭后使用操作系统进行备份

C.使用ALTER CONTROLFILE BACKUP 命令备份联机控制文件 D.使用 ALTER DATABASE BACKUP TABLESPACE命令备份联机表空间 E.使用ALTER DATABASE BACKUP CONTROLFILE命令备份联机控制文件

(6)启动数据库时,你发现一个非活动未归档的日志组不可用,你可以执行以下哪些命令D A.RECOVER REDOLOG GROUP 1;B.RECOVER DATABASE UNTIL CANCEL;C.ALTER DATABASE RECOVER REDOLOG;D.ALTER DATABASE CLEAR UNARCHIEVED LOGFILE GROUP 1;E.RECOVER DATABASE UNTIL TIME ‘1999-09-15:11:23:00’;

(7)在进行关闭数据库的备份之前,哪三个命令可用于关闭数据库?BCD A.SHUTDOWN ABORT.B.SHUTDOWN NORMAL.C.SHUTDOWN IMMEDIATE.D.SHUTDOWN TRANSACTIONAL.(8)关于联机备份,哪项说明是错的?C A.数据库可以被所有用户访问 B.数据库必须运行在归档模式下 C.数据库可以打开,但只能处于只读状态 D.表空间置于备份状态

(9)当使用备份控制文件时,管理员需要做什么?D A.没有特定要求

B.在 RECOVER命令中使用UNTIL CANCEL 子句

C.在 RECOVER命令中使用 USING BACKUP CONTROLFILE 子句 D.恢复数据库之前发出 RECOVER CONTROLFILE命令 F.start the database in the NOARCHIVELOG mode

第四篇:大连东软信息学院数据库简答题

·数据库简答题

1.数据库经历阶段及特点

A人工管理阶段 1数据不保存在计算机内2只有程序概念无文件概念3数据面向程序4数据不具有独立性

B文件系统阶段1数据可长期保存2简单的数据管理功能3数据共享性差4数据独立性差

C数据库系统阶段1数据的集成性2数据的高度共享性与低冗余性3数据独立性高4数据的管理和控制能力

2.数据库管理系统功能A数据定义功能B数据操纵功能C数据库运行管理功能D数据库的建立和维护功能E数据库的传输

3.数据模型三要素A数据结构B数据操作C数据完整性约束

4.数据逻辑模型种类A层次模型B网状模型C关系模型

5.数据库三级模式体系结构A概念模式B外模式C内模式

6.数据库二级映像与数据独立性A外模式/模式映像与数据的逻辑独立性B模式/内模式映

像与数据的物理独立性

7.关系的完整性约束A实体完整性B参照完整性C用户自定义完整性

8.关系代数特点:集合操作方式

9.选择:从中选行投影:从中选列连接:除运算:

10.等值连接与自然连接区别:A两关系只有在同名属性才能进行自然连接B自然连接是去

掉重复列的等值连接

11.SQL的基本功能A数据定义B数据操纵C数据控制D嵌入式SQL

12.SQL主要特点A综合统一B高度非过程化C面向集合的操作方式D以同一种语法结构提

供两种使用方式E语言间接易学易用

13.视图的概念和作用A简化用户的操作B使用户能以多种角度看待同一数据C简化数据查

询语句D提供一定程度的逻辑独立性E提高了数据的安全性

14.关系模式存在的问题A数据冗余B插入异常C删除异常D修改异常

15.数据库设计的步骤A规划B需求分析C概念设计D逻辑设计E物理设计F实现G运行

和维护

16.数据字典是各类数据描述的集合。作用A数据项B数据结构C数据流D数据存储E处理

过程

17.局部E-R模型冲突A属性冲突B命名冲突C结构冲突

18.事务是用户定义的一个数据库的一个数据库操作序列。

19.事务特性A原子性B一致性C隔离性D持久性

20.并发控制存在的问题A丢失修改B读“脏”数据C不可重复读解决方法A并发调度的可

串行性B封锁与封锁协议

第五篇:大连东软信息学院C语言实验三顺序及分支结构程序设计

实验三 顺序及分支结构程序设计

一、实验目的

1.熟悉运算符、表达式,掌握标准输入输出函数的适用方法和顺序结构程序设计的一般方法

2.掌握if语句的格式与应用,if语句的嵌套格式与应用,条件运算符的作用,Switch语句的格式与应用,Break、continue语句的格式与应用。

二、预习内容

1.C语言的常用的运算符及其使用特点。

2.算术运算符中++,――运算符的应用特点。3.常用的关系运算符及应用特点。4.逻辑运算符的概念及应用特点 5.条件运算符的作用及应用特点。

6.各种运算符的混合运算及不同运算符的优先级别。7.条件分支语句的格式及应用。

8.Switch多分支选择语句的格式及应用。

三、实验内容

(一)阅读调试下列程序,并写出程序结果。1.#include

void main()

{

char ch=0x31;

printf(“%dn”,ch);/*屏幕显示___________*/

printf(“%on”,ch);/*屏幕显示____________*/

printf(“%xn”,ch);/*屏幕显示____________*/

printf(“%cn”,ch);/*屏幕显示____________*/

} 运行结果:49 61 31 1 2.#include

void main(){ int a=5,b=5;printf(“value a=%dn”,a++);/*屏幕显示___________*/ printf(“value b=%dn”,++b);/*屏幕显示___________*/ printf(“value a=%dn”,--a);/*屏幕显示___________*/ printf(“value b=%dn”,b--);/*屏幕显示___________*/ } 运行结果:value a=5 value b=6 value a=5 value b=6 3.输入两个实数a,b,然后交换它们的值,最后输出 #include void main()

{

float a,b,temp;

printf(“请输入a和b的值:”);

scanf(“%f,%f”,&a,&b);

temp = a;

a=b;

b=temp;

printf(“交换后, a=%f, b=%fn”,a,b);

} 运行结果:Please input a and b’s value:1.0,2.0 When finishing,a=2.000000,b=1.000000

4.完成下面的程序,在空白处填入a,b,c,取a,b,c中最大者赋给max。

A.if(a>b && a>c)

B.if(a>b)

max=________

if(a>c)

else

max=______ if(b>c)

else

max=________

max=______ else

else

max=________

if(b>c)

max=________

else

max=_________ 5.若整数x分别等于95、87、100、43、66、79,则以下程序段运行后屏幕显示是什么?

#include main(){

int x;

printf(“please input the x value:”);

scanf(“%d”,&x);

switch(x/10)

{

case 6:

case 7:

printf(“Passn”);

break;

case 8:

printf(“Goodn”);

break;

case 9:

case 10:

printf(“VeryGoodn”);

break;

default:

printf(“Failn”);

} }

x等于 95时,程序段运行后屏幕上显示_VeryGood__

x等于 87时,程序段运行后屏幕上显示_Good_

x等于100时,程序段运行后屏幕上显示_Verygood__

x等于 43时,程序段运行后屏幕上显示__Fail_

x等于 66时,程序段运行后屏幕上显示__Pass_

x等于 79时,程序段运行后屏幕上显示__Pass_

(二)编制下列程序

1.以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,然后输出a,b,c的值

解答:

#include

void main(){ int a,b,c,temp;printf(“Please input a b and c's value:”);scanf(“%i,%i,%i”,&a,&b,&c);temp=a;a=b;b=c;c=temp;printf(“When finishing,a=%i,b=%i,c=%in”,a,b,c);getch();} 2.输入一个整数,判断该数的奇偶性。自已写出程序代码。(输出相应的标志even-偶数 odd-奇数,请记住这两个单词)

【分析提示】

一个数除2若余数为0,则这个数一定是偶数,否则是奇数。C语言中的求余运算符为“%”,若输入的数为偶数则输出“even”,若输入的数为奇数则输出“odd”。

解答:

#include

main(){ int number,residue;printf(“Please input your number:n”);scanf(“%d”,&number);residue=number%2;if(residue==0)printf(“It's even.n”);else printf(“It's odd.n”);getch();} 3.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。

① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。

解答:<1> if形式: #include

main(){ int result;printf(“Please input one result:n”);scanf(“%d”,&result);if(result>=90)printf(“Your result is A.n”);else if((result>=80)&&(result<=89))printf(“Your result is B.n”);else if((result>=70)&&(result<=79))printf(“Your result is C.n”);else if((result>=60)&&(result<=69))printf(“Your result is D.n”);else if(result<=59)printf(“Your result is E.n”);getch();} 经过测试,此程序可按预想正确运行(O(∩_∩)O~)<2> switch 形式: #include

main(){ int result,grade;printf(“Please input one result:n”);scanf(“%d”,&result);grade=result/10;switch(grade){ case 10: case 9: printf(“Your result is A.n”);break;case 8: printf(“Your result is B.n”);break;case 7: printf(“Your result is C.n”);break;case 6: printf(“Your result is D.n”);break;case 5: case 4: case 3: case 2: case 1: case 0: printf(“Your result is E.n”);break;default:printf(“ERRORn”);} getch();} 经过测试,此程序可按预想正确运行(O(∩_∩)O~)

② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。

解答:只需将default 后的 打印语句改为(“Your input is error.n”)即可

四、思考题

1.试举例说明++i与i++应用的区别。答:前者是 先给i加1,然后再取i的值,后者是 先取i的值,然后再给i加1.2.写出C语言中所有运算符混合运算的优先级别。

答:优先级从上往下依次是:

()[ ]->.!~ ++--+<< >> < <= > >= ==!=

& ^ | && || ? : = +=-= *= /= %= &= ^= |= <<= >>= , 3.试分析比较条件表达式与if语句的使用特点。

答:条件表达式:

1、多路选择

2、switch语句是多分支选择语句,可用嵌套的if语句处理,但降低了可读性。

3、当分支数大于三种时,常采用开关语句简化程序设计 If:

4.Switch语句结构中加不加break有何区别?在什么情况下可以不加break语句?

答:不加break 会直接执行,直到遇见 break 或 花括号为止。想要执行所有的case 语句 时可以不加 break!

下载大连东软信息学院C语言指针练习2016.docxword格式文档
下载大连东软信息学院C语言指针练习2016.docx.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    大连东软信息学院校歌词曲诠释

    大连东软信息学院校歌词曲诠释 作词:温 涛 作曲:张明华 这里山海壮阔 这里草木芬芳 每一块砖石 铭刻大学理想 听那汽笛悠长 听那钟声激荡 每一颗心灵 在此追梦远航 精勤博学......

    大连东软信息学院 高数测试卷

    系统测试(卓越班12级) 总共17题共85分 一、单选题 (共17题,共85分) 1. 函数与定义域的交集为( ) (5分) A. B. C. D. 标准答案:D 考生答案: 2. ( ) (5分) A. B. C. D.以上均不对 标准答案:A......

    大连东软信息学院辅导员王滨

    千磨万击还坚劲 春泥护花爱无声 ——大连东软信息学院辅导员王滨事迹材料 一、个人简历 王滨,女,汉族,中共党员, 1973年4月生。2003年8月起从事辅导员工作,2010年担任大连东软信......

    大连东软信息学院金融学案例题

    ·金融学案例题 1.【基金】给定一个基金的基本资料,问这个管理公司是哪一家,托管人是谁,对于这个托管人来讲,属于表内业务还是表外业务?说出几个其他的表内/表外业务。如果按投资......

    C语言指针实习

    实习七:指针实习一、实习目的 姓名:尹思智学号:2012014413 完成日期:2013年4月 1. 由键盘输入10个整数,将它们从小到大排序 2. 将10个字符串(设其长度小于30)排序。 3. 找出二维数......

    C语言实验报告《指针》

    学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________实验五 指针一、实验目的1、掌握指针的概念、会定义和使用指针变量2、掌......

    大连东软信息学院大一上 电子工程 c语言-作业.doc第一次,第二周(5篇)

    4.Create a program that uses escape sequence “ to print favorite quote. #include main { clrscr; printf(""Just do myself.""); } 5.Create a program that u......

    C语言指针的理解

    C_C++指针指针应用详解 前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里......