数据库基础试题18.docx
《数据库基础试题18.docx》由会员分享,可在线阅读,更多相关《数据库基础试题18.docx(12页珍藏版)》请在冰点文库上搜索。
数据库基础试题18
1.与十进制数97不等值的字符常量是(A)
A.’\101’
B.’\x61’
C.’\141’
D.’a’
2.下列变量说明语句中,正确的是(B)。
A.chara;b;c;
B.intx,z;
C.char:
abc;
D.intx;z;
3.设intx=1,y=1;表达式(!
x||y--)的值是(A)。
A.1
B.2
C.-1
D.0
4.以下程序的输出结果是(D)。
#include
voidmain()
{floatx=3.6;
inti;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A.x=3i=3.600000
B.x=3.600000,i=4
C.x=3,i=3
D.x=3.600000,i=3
5.putchar函数可以向终端输出一个(D)。
A.整型变量表达式值
B.实型变量值
C.字符串
D.字符或字符型变量值
6.inta=3,b=2,c=1;if(a>b>c)a=b;elsea=c;则a的值为(C)。
A.2
B.3
C.1
D.0
7.执行语句for(i=1;i++<4;);后变量i的值是(D)。
A.不定
B.3
C.4
D.5
8.数组名作为实参数传递给函数时,数组名被处理为(C)。
A.该数组的长度
B.该数组的元素个数
C.该数组的首地址
D.该数组中各元素的值
9.在C语言中,一维数组的定义方式为:
类型说明符数组名(D)。
A.[整型表达式]
B.[整型常量]或[整型表达式]
C.[常量表达式]
D.[整型常量]或[整型常量表达式]
10.以下函数调用语句中实参的个数是(C)。
func((e1,e2),(e3,e4,e5));
A.5
B.语法错误
C.2
D.3
11.在C语言程序中(C)。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义和函数调用均可以嵌套
C.函数的定义不可以嵌套,但函数的调用可以嵌套
D.函数的定义和函数调用不可以嵌套
12.若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5
的语句为(A)。
A.printf("%d",*p[5]);
B.printf("%d",p[5]);
C.printf("%d",*(p+5));
D.printf("%d",*(a+5));
13.若定义:
inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为(B)。
A.a的地址
B.511
C.512
D.无确定值
14.以下对枚举类型名的定义中正确的是(D)。
A.enuma{"sum","mon","tue"};
B.enuma={sum,mon,tue};
C.enuma={"sum","mon","tue"};
D.enuma{sum=9,mon=-1,tue};
15.打开文件时,方式“w”决定了对文件进行的操作是(D)。
A.追加写盘
B.可读可写盘
C.只读盘
D.只写盘
1.下列程序的输出是___10__,main(){inta=011;printf("%d\n",++a);}
2.
当a=1、b=2、c=3时,以下if语句执行后,a、b、c中的值分别为:
__3___、___2__、2_____
if(a>c)
b=a;a=c;c=b;
3.设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i<=j;i++,j--)k=i+j;后,k的值为____10_.
4.C语言中,二维数组在内存中的存放方式为按_行序____优先存放.
5.静态变量的类型说明符是_static____
6.以下程序的执行结果是___a=20,b=20__。
main()
{
inta,b,*p=&a,*q=&b;
a=10;
b=20;
*p=b;
*q=a;
printf(“a=%d,b=%d\n”,a,b);
7.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是32_____.
structstud{charnum[8];ints[4];doubleave;}a,*p;
8.以下程序用来统计文件中字符的个数。
请填空。
#include
main()
{FILE*fp;
longnum=0;
if((fp=fopen("fname.dat","r")==NULL)
{printf("Openerror!
\n");
exit(0);
}
while(!
feof(_____))
{fgetc(fp);
num++;
}
printf("num=%d\n",num);
fclose(fp);答案:
fp
9.设x=4<4-!
0,x的值为_0____.
10.设a=3,b=4,c=5,则表达式!
(a+b)+c-1&&b+c/2的值为__1___.
三,程序设计
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写一个函数,该函数可以统计一个长度为2的字符
串在另一个字符串中出现的次数。
例如:
假定输入的字符串为:
asdasasdfgasdaszx67asdmklo,
字符串为:
as,则应输出6。
------------------------------------------------*/
#include
#include
#include
voidTestFunc();
intfun(char*str,char*substr)
{
/**********Begin**********/
/**********End**********/
}
voidmain()
{
charstr[81],substr[3];
intn;
printf("输入主字符串:
");
gets(str);
printf("输入子字符串:
");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
TestFunc();
}
voidTestFunc()
{
FILE*IN,*OUT;
intn;
chari[200];
charo[200];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
fscanf(IN,"%s",i);
n=fun(i,"as");
fprintf(OUT,"%d",n);
fclose(IN);
fclose(OUT);
答案【参考代码】
inti,n=0;
for(i=0;i<=strlen(str)-2;i++)
if((str[i]==substr[0])&&(str[i+1]==substr[1]))
n++;
returnn;
四.程序改错
/*------------------------------------------------------
【程序改错】:
只允许修改错误代码,其他代码不允许修改!
--------------------------------------------------------
功能:
根据整型形参m,计算如下公式的值:
y=1+1/3+1/5+1/7+...+1/(2m-1)
------------------------------------------------------*/
#include"stdio.h"
doublefun(intm)
{
/**********ERROR**********/
doubley=1
inti=0;
/**********ERROR**********/
while(i{
/**********ERROR**********/
y+=1.0/(2i-1);
i++;
}
return(y);
}
voidmain()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
}
答案
【改错1】错误
【学生答案】
doubley=1
【参考答案】
doubley=0;
============================================================
【改错2】错误
【学生答案】
while(i【参考答案】
while(i<=m)
while(i
============================================================
【改错3】错误
【学生答案】
y+=1.0/(2i-1);
【参考答案】
y+=1.0/(2*i-1);
五.程序填空
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
利用全局变量计算长方体的体积及三个面的面积。
-------------------------------------------------------*/
#include
ints1,s2,s3;
intvs(inta,intb,intc)
{
intv;
v=a*b*c;
s1=a*b;
/**********FILL**********/
s2=_____;
s3=a*c;
returnv;
}
voidmain()
{
intv,l,w,h;
printf("\ninputlength,widthandheight:
");
/**********FILL**********/
scanf("%d%d%d",_____,&w,&h);
/**********FILL**********/
v=_____(l,w,h);
printf("v=%ds1=%ds2=%ds3=%d\n",v,s1,s2,s3);
}
答案
======================【空1】错误
【学生答案】
s2=_____;
【参考答案】
b*c
b*c
c*b
c*b
============================================================
【空2】错误
【学生答案】
scanf("%d%d%d",_____,&w,&h);
【参考答案】
&l
============================================================
【空3】错误
【学生答案】
v=_____(l,w,h);
【参考答案】
vs
============================================================
======================================