已知有声明“char a[ ]="It is mine", *p= "It is mine";”,下列叙述中错误的是__________。(09年春28)
A.strcpy(a, "yes")和strcpy(p, "yes")都是正确的
B.a="yes"和p="yes"都是正确的
C.*a等于*p
D.sizeof(a)不等于sizeof(p)
已知有声明“int a[3][3]={0}, *p1=a[1], (*p2)[3]=a;”,以下表达式中与“a[1][1]=1”不等价的表达式是__________。(09年春29)
A.*(p1+1)=1 B.p1[1][1]=1
C.*(*(p2+1)+1)=1 D.p2[1][1]=1
●指针函数
若有一函数定义为“int f(int x,int *y){return x/*y} ”,声明该函数的正确形式是(28)。D (10年秋28)
A.void f(int,int);
B.int *f(int,int *);
C.int f(int *,int *);
D.int f(int,int *);
●结构体
已有定义和声明:
struct student
{int no;
char name[20];
struct{int year,month,day;}birth;
}s;
若要求将日期“1989年11月12日”保存到变量s的birth成员中,则能实现这一功能的程序段是(30)。 D (10年秋30)
A.year=1989; month=11; day=12;
B.s.year=1989; s.month=11; s.day=12;
C.birth.year=1989; birth.month=11; birth.day=12;
D.s.birth.year=1989; s.birth.month=11; s.birth.day=12;
设有结构定义及变量声明如下:(09年春30)
struct product
{char code[5];
float price;
}y[4]={"100",100};
以下表达式中错误的是__________。
A.(*y).code[0]= '2'; B.y[0].code[0]= '2' ;
C.y->price=10; D.(*y)->price=10;
●位运算
●文件
下列叙述中,正确的是()(10年春30)
A.C语言中的文件是流式文件,因此只能顺序存取文件中的数据。
B.调用fopen函数时若用“r”或“r+”模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在。
C.当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据。
D.无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖。
填空题
●数据类型、运算符与表达式
若有声明“double n;”则数学公式“n(4n2-1)”对应的C语言表达式正确形式是(1)。(10年秋1) 1.0/3*n*(4*n*n-1)
数学式所对应的C语言表达式为pow(x, (1) )。1.0/3 (10年春1)
已知有声明“char ch=’g’;”,则表达式ch=ch-‘a’+’A’的值为字符(2)的编码。G(10年春2)
在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占(3) 个字节。2(10年春3)
(09年秋3)sqrt(abs(x))!=(4*a)/(b*c) 数学表达式所对应的C语言表达式为。
若有声明“int x;”且sizeof(x)的值为2,则当x值为__________时“x+1>x”为假。32767 (09年春2)
若有声明“float y=3.14619; int x;”,则计算表达式“x=y*100+0.5, y=x/100.0”后y的值是__________。3.15 (09年春3)
●顺序结构
已知有声明“char ch;int a;”,执行语句“scanf(“%c%d”,&ch,&a);”时如果从键盘输入的数据是“123”,则变量a得到的值是(2)。(10年秋2)23
已知有声明和语句“int a;scanf(“a=%d”,&a);”,欲从键盘上输入数据使a中的值为3,则正确的输入应是(5)。a=2 (10年春5)
以下程序运行时输出到屏幕的结果是(7)。2,1 (10年春7)
#include
void main()
{ int a=1,b=2;
a+=b;
b=a-b;
a-=b;
printf(“%d,%d\n”,a,b);
}
若有声明”int r=2;”,则执行语句”printf(“%d”, sizeof(2*3.14*r));”时输出。8(09年秋2)
●选择结构
若有声明“int a=0,b=1,c=2;”,执行语句“if(a>0&&++b>0)c++;else c- -;”,变量a、b、c的值分别是(3) 。0 1 1 (10年秋3)
C语言中有!、&&、||三个逻辑运算符,其中优先级高于算术运算符的是。!(09年秋1)以下程序运算时输出到屏幕的结果是。2 (09年秋7)
#include
void main()
{ int i=1,m=0;
switch(i)
{ case 1:
case 2: m++;
case 3: m++;
}
printf(“%d”, m);
}
解析:本题switch中没有break,所以当i=1,case1,2,3依次执行,m初值为0,自增两次,值为2
以下程序运行时输出结果是__________。2 3 5 6 (09年春6)
#include
void main()
{int k=5,n=0;
while(k>0)
{switch(k)
{case 1:
case 3: n+=1;k--;break;
default: n=0;k--;
case 2:
case 4: n+=2;k--;break;
}
printf("%3d",n);
}
}
●循环结构
以下程序运算时输出到屏幕的结果中第一行是,第二行是。(09年秋12)#include
void main()
{ int a[3][3]={{3,8,12},{4,7,10},{2,5,11}},i,j,k,t;
for(j=0;j<3;j++)
for(k=0;k<2;k++)
for(i=0;i<2-k;i++)
if(a[i][j]>a[i+1][j])
t=a[i][j],a[i][j]=a[i+1][j],a[i+1][j]=t;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf(“%3d”,a[i][j]);
printf(“\n”);
}
}
2 5 10
4 8 12
●数组
以下程序运行时输出到屏幕的结果为(6)。our (10年秋6)#include
enum{A,B,C,D}x;
void main()
{char s[]="your";
for(x=B;x<=D;x++)
putchar(s[x]);
}
以下程序运行时输出到屏幕的结果为(7)。4332 (10年秋7)#include
void main()
{int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j;
for(i=0;i<12;i++)
{ j=s[i];
c[j]++;
}
for(i=1;i<5;i++)
printf("%d",c[i]);
}
以下程序运行时输出到屏幕的结果第二行是(13) 1 1 ,第四行是(14)1 3 3 1 。(10年春11)
#include
#define N 6
void main()
{ int i,j,a[N+1][N+1];
for (i=1;i<=N;i++)
{ a[i][i]=1;a[i][1]=1; }
for(i=3;i<=N;i++)
for (j=2;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<=N;i++)
{ for(j=1;j<=i;j++)
printf(“%4d”,a[i][j]);
printf(“\n”);
}
}
以下程序运行时输出到屏幕的结果中第一行是(14),第二行是(15),第三行是(16)。算法提示:将Fibonacci数列(1,1,2,3,5,8,13,….)前6个数填入a数组。(10年秋12)
#include
#define N 3
void main()
{int i,j,a[N][N]={1},f1=0,f2=1,temp;
for(i=1;ifor(j=0;j<=i;j++)
{if(j<=i)
{a[i][j]=f1+f2;
temp=f1;
f1=f2;
f2=f1+temp;
}
}
for(i=0;i{for(j=0;jprintf("%5d",a[i][j]);
printf("\n");
}
}
1 0 0
1 2 0
3 5 8
以下程序运行时输出结果中第一行是__________,第三行是__________。(09年春9)第一行33333
第三行 3 3
#include
#define N 5
void main()
{static char a[N][N];
int i,j,t,start=0,end=N-1;
char str[]="123",ch;
for(t=0;t<=N/2;t++)
{ch=str[t];
for(i=j=start;ifor(j=start;jfor(i=end;i>start;i--)a[i][j]=ch;
for(j=end;j>start;j--)a[i][j]=ch;
if(start==end) a[start][end]=ch;
}
for(i=0;i{for(j=0;jprintf("%c",a[i][j]);
printf("\n");
}
}
以下程序中函数float fun(int m)的功能是计算s=s1+s2+s3+s4的值,其中s1、s2、s3、s4用下列公式计算。请完善程序以达到要求的功能。(10年秋14)
S1=1++++. . .+
S2=1++++. . .
S3=1++++. . .+
S4=1++++. . .+
算法提示:
S=1+1+1+1+ +++++++++. . . +++
#include
float fun(int m )
{ int i,n;
float s=0,t;
for(n=1;n<=m;n++)
{t= (19) ; 1.0
for(i=1;i<5;i++)
{ t= (20) ; t/n
s+=t;
}
}
return s;
}
main()
{printf("%f",fun(50));}
函数
声明局部变量时若缺省存储类别,该变量的存储类别是。auto(09年秋5)
在一个C语言源程序中,必不可少的是__________。主函数(09年春1)
以下程序运行时输出到屏幕的结果为(8)。13 11 12(10年春8)
#include
void swap(int a,int b)
{ int t;
if (a>b) t=a,a=b,b=t;
}
void main()
{ int x=13,y=11,z=12;
if(x>y) swap(x,y);
if(x>z) swap(x,z);
if(y>z) swap(y,z);
printf(“%d\t%d\t%d\n”,x,y,z);
}
以下程序运行时输出到屏幕的结果第一行是(9) 5 ,第二行是(10)7 ,第三行是(11)8 。(10年春9)
#include
int g(int x,int y)
{ return x+y;
}
int f(int x,int y)
{
{
static int x=2;
if (y>2)
{ x=x*x;
y=x;
}
else y=x+1;
}
return x+y;
}
void main()
{ int a=3;
printf(“%d\n”,g(a,2));
printf(“%d\n”,f(a,3));
printf(“%d\n”,f(a,2));
}
以下程序运行时输出结果是__________。7 (09年春8)
#include
int f(int x ,int y)
{return x+y ;}
void main()
{double a=5.5,b=2.5;
printf("%d", f(a,b));
}
以下程序运算时输出到屏幕的结果是。(09年秋10)
#include
long f(int n)
{ static long s;
if(n==1) return s=2;
else return ++s;
}
void main()
{ long i,sum=0;
for(i=1;i<4;i++) sum+=f(i);
printf(“%ld”, sum);
}
解析:本题考点static,s为静态局部变量,函数调用结束后不消失保留原值,第一次f(1),s值为2,第二次f(2),s=3,第三次f(3),s=3,sum=2+3+4=9
以下程序运行时输出到屏幕的结果为(8)。13 (10年秋8)#include
int fun(int x)
{static int c,y;
if(c==0)y=1;
else y=y+x;
c++;
return y;
}
void main()
{int i;
for(i=0;i<2;i++)
printf("%d",fun(2));
}
以下程序将同时出现在数组a和b中的数据复制到数组c中。例如,如果数组a中的数据是{8,5,7,1,6,4,9},数组b中的数据是{2,9,3,7,4,5,10},则数组c中的结果数据位{5,7,4,9}。以下程序中,in函数判断x中存储的整数是否在a指向的数组前n个元素中出现,如果出现则函数返回1,否则返回0。请完善程序以达到要求的功能。(10年秋15)#include
int in(int a[],int n,int x)
{int i;
for(i=0;iif( (21)) return 1; x==a[i]
return 0;
}
void main()
{int a[7]={8,5,7,1,6,4,9},b[7]={2,9,3,7,4,5,10},c[7]={0},i,j=0;
for(i=0;i<7;i++)
if( (22)) in(b,6,a[i])
c[j++]=a[i];
for(i=0; (23);i++) iprintf("%d\t",c[i]);
}
递归
以下程序运行时输出到屏幕的结果为(11)。 6 (10年秋10)#include
int f(int x)
{if(x==0||x==1) return 3;
return x*x-f(x-2);
}
void main()
{
printf("%d\n",f(3));
}
以下程序运行时输出到屏幕的结果是(12)。2 2 1 (10年春10)
#include
void fun(int m,int n)
{ if (m>n)
printf(“%d”,m);
else
fun(m+1,n);
printf(“%d”,m);
}
void main()
{ fun(1,2); }
以下程序运算时输出到屏幕的结果是。(09年秋9)
#include
int fun(int *x,int n)
{ if(n==0) return x[0];
else return x[0]+fun(x+1,n-1);
}
void main()
{ int a[]={1,2,3,4,5,6,7};
printf(“%d\n”,fun(a,2));
}
解析:本题为递归,解决递归分两步递推+回推
递推:fun(a,2)
a[0]+fun(a+1,1)
a[1]+fun(a+1+1,0) 注意此时指针的地址不a,而是a+1,返回的是a[1]+fun(a+1+1,0)而不是a[0]+fun(a+1+1,0) ,当n=0时fun(a+1+1,0)值为a[2],再依次回推a[2]+a[1]+a[0]=6
以下程序在3~50范围内验证:大于等于3的两个相邻素数的平方之间至少有4个素数。例如,3和5是相邻素数,32~52之间有素数11、13、17、19、23。试完善程序以达到要求的功能。(09年秋16)
#include
#include
#include
int prime(int n)
{ int i;
for(i=2;i<=sqrt(n);i++)
if( n%i==0 )return 0;
return 1;
}
void main()
{ int i,j,k=0,m,n,c,a[30]={0};
for(i=3;i<50;i++)
if(prime(i)) a[k++]=i ;
for(i=0;i{ m=a[i]*a[i];
n=a[i+1]*a[i+1];
c= 0 ;
for(j=m+1;jif( prime(j)) c++;
if(c>=4)
printf(“\n %d*%d-%d*%d: %d”,a[i],a[i],a[i+1],a[i+1],c);
else {printf(“Error”);exit(0);}
}
}
预处理
若有以下宏定义:
#define M(a,b) -a/b
则执行语句“printf(‘%d”,M(4+3,2+1));”后输出结果为(4)。-2 (10年秋4)
以下程序运行时输出到屏幕的结果为(6)。10(10年春6)
#include
#define MAX(A,B) A>B?2*A:2*B
void main()
{ int a=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
printf(“%d\n”,t);
}
以下程序运算时输出到屏幕的结果中第一行是,第二行是。(09年秋11)
#include
#define f(x,y) y=x*x
void g(int x, int y)
{ y=x*x; }
void main()
{ int a=2,b=0,c=2,d=0;
f(a,b);
g(c,d);
printf(“%d\n%d”,b,d);
}
4
解析:f(a,b)为宏替换,b值为4,g(c,d)为函数调用,但是函数中没有返回值,所以d 保持原值0
执行以下程序段中的语句“k=M*M+1;”后k的值是__________。6 (09年春4)
#define N 2
#define M N+1
k=M*M+1;
●指针
若有以下声明:(09年秋4)
char *p=”%d,%d\n”; int a=1,b=2;
则执行语句”printf(p,a,b);”时输出。1,2
●指针数组
已知有声明“int a[3][2]={{1,2},{3,4},{5,6}},*p=a[0];”,则执行语句“printf(“%d\n”,*(p+4));”后的输出结果为(4)。5 (10年春4)
以下程序运算时输出到屏幕的结果是。(09年秋13)
#include
#include
void main()
{ int i=0,n=0;char s[80],*p;
strcpy(s,”It is a book.”);
for(p=s;*p!=’\0’;p++)
if(*p==’’)
i=0;
else
if(i==0)
{ n++;i=1; }
printf(“%d\n”,n);
}
4
解析:本题功能是求一句英文中单词的个数。当i=0,表示新单词开始,同时i变为1,n来统计单词个数,遇到空格表示单词结束,又表示下一个单词的开始,i置0。
指针函数
以下程序运行时输出到屏幕的结果中第一行是(9) 6 ,第二行是(10) 3 。(10年秋9)
#include
void fun(int *a,int b)
{while(b>0)
{ *a+=b;
b--;
}
}
void main()
{int x=0,y=3;
fun(&x,y);
printf("%d\n%d\n",x,y);
}
以下程序运行时输出到屏幕的结果中第一行是(12)1,第二行是(13)19。(10年秋11)
#include
#include
void compute(char *s)
{int t,r;
char op;
for(r=0;isdigit(*s);s++)/*isdigit(*s)判断s指向的字符是否为数字字符*/
r=r*10+*s-'0';
while(*s)
{op=*s++;
for(t=0;isdigit(*s);s++)
t=t*10+*s-'0';
switch(op)
{case '+': r=r+t;break;
case '-': r=r-t;break;
case '*': r=r*t;break;
case '/': if(t) r=r/t ;else{puts("devide error");return;}
}
}
printf("%d\n",r);
}
void main()
{compute("12+6-19+2");
compute("12/6*19/2");
}
以下程序运行时输出结果是__________。x=18,y=27,z=18 (09年春7)
#include
void change(int x,int y,int *z)
{int t;
t=x; x=y; y=*z; *z=t;
}
void main()
{int x=18,y=27,z=63;
change(x,y,&z);
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
以下程序运行时输出到屏幕的结果第一行是(15)3 2 1 ,第二行是(16) 1 4 3 2 5 ,(10年春12)
#include
void fun(char *p1,char *p2);
void main()
{ int i; char a[]=”54321”;
puts(a+2);
fun(a,a+4);
puts(a);
}
void fun(char *p1,char *p2)
{ char t;
while(p1{ t=*p1;*p1=*p2;*p2=t;
p1+=2,p2-=2;
}
}
以下程序运行时输出结果中第一行是__________,第二行是__________。(09年春10)
第一行 1 3 9
第二行 3
#include
void fun(int x,int p[],int *n)
{int i,j=0;
for(i=1;iif(x%i==0)p[j++]=i;
*n=j;
}
void main()
{int x,a[10],n,i;
fun(27,a,&n);
for(i=0;iprintf("%5d",a[i]);
printf("\n%5d",n);
}
以下程序运行时输出结果是__________。 4 (09年春11)
#include
#include
int count(char s[])
{int i=0;
if(s[i]=='\0') return 0;
while(isalpha(s[i]))i++;
while(!isalpha(s[i])&&s[i]!='\0')i++;
return 1+count(&s[i]);
}
void main()
{char line[]="one world,one dream.";
printf("%d",count(line));
}
以下程序运行时输出结果中第一行是__________,第二行是__________。(09年春12)第一行 5
第二行yesno
#include
int fun(char *a,char *b)
{int m=0,n=0;
while(*(a+m)!='\0')m++;
while(b[n])
{*(a+m)=b[n];m++;n++;}
*(a+m)='\0';
return m;
}
void main()
{char s1[20]="yes",s2[5]="no";
printf("%d\n",fun(s1,s2));
puts(s1);
}
以下程序运行时输出结果中第一行是________,第二行是________,第三行是________。(09年春13)
历年江苏省计算机二级考试真题及答案2008-2009
本文由Janicexujia贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 2009 年春江苏计算机等级考试二级 vb 试卷绝密★启用前 2009 年春江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试二级试卷试卷语种: Visual Basic 说明: 1.本试卷包括计算机基础知识部分和程序设计部分,考试时间共 120 分钟 2.本试卷满分为 60 分,分选择题和填空题,试卷不分 A、B 类型; 3.计算机基础知识部分全部是选择题(20 分),程序设计部分分为选择题(10 分)和填空题(30 分)两种; 4.选择题用答题卡答题。每一项有 A、B、C、D 四个可供选择的答案,请选择其中一个你认为正确的答案,用 HB 铅笔涂写在答题卡的相应答题号内。每选对一项得 1 分,不选或选错不得分; 5.填空题用答题纸答题。请将答案用蓝、黑色钢笔或圆珠笔填写在答题纸的相应答题号内,每个答案只占一行,不得换行。每填对一个答案得 1 分,不填或填错不得分; 6.请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是否填写正确。 7.考试结束时将试卷、答题卡和答题纸放在桌上,不得带走。待监考人员收点第一部分计算机基础知识 1. 在下列有关现代信息技术的一些叙述中,正确的是 1 。 A.集成电路是 20 世纪 90 年代初出现的,它的出现直接导致了微型计算机的诞生 B.集成电路的集成度越来越高,目前集成度最高的已包含几百个电子元件 C.目前所有数字通信均不再需要使用调制解调技术和载波技术D.光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量‘ . 2. 最大的 10 位无符号二进制整数转换成八进制数是 2 .。 A.1023 B.1777 C.1000 D.1024 3. 在下列有关目前 PC 机 CPU 的叙述中,错误的是 3 。 A.CPU 芯片主要是由 Intel 公司和 AMD 公司提供的 B."双核"是指 PC 机主板上含有两个独立的 CPU 芯片 C.Pentium 4 微处理器的指令系统由数百条指令组成 D.Pentium 4 微处理器中包含一定容量的 Cache 存储器 4. 在下列有关当前 PC 机主板和内存的叙述中,正确的是 4 。 A.主板上的 BIOS 芯片是一种只读存储器,其内容不可在线改写 B.绝大多数主板上仅有一个内存插座,因此 PC 机只能安装一根内存条 C.内存条上的存储器芯片属于 SRAM(静态随机存取存储器) D.目前内存的存取时间大多在几个到十几个 ns(纳秒)之间 5. 在下列有关 PC 机辅助存储器的叙述中,正确的是5 。 A.硬盘的内部传输速率远远大于外部传输速率 B.对于光盘刻录机来说,其刻录信息的速度一般小于读取信息的速度 C.使用 USB 2.0 接口的移动硬盘,其数据传输速率大约为每秒数百兆字节 D.CD-ROM 的数据传输速率一般比 USB 2.0 还快 6. 在下列 PC 机 I/O 接口中,数据传输速率最快的是 6 。 https://www.360docs.net/doc/5d9409629.html,B 2.0 B.IEEE-1394 C.IrDA (红外) D.SATA 7. 计算机软件可以分为商品软件、共享软件和自由软件等类型。在下列相关叙述中,错误的是 7 。 A.通常用户需要付费才能得到商品软件的使用权,但这类软件的升级总是免费的 B.共享软件通常是一种"买前免费试用"的具有版权的软件 C.自由软件的原则是用户可共享,并允许拷贝和自由传播 D.软件许可证是一种法律合同,它确定了用户对软件的使用权限 8. 人们通常将计算机软件划分为系统软件和应用软件。下列软件中,不属于应用软件类型的是 8 A.AutoCAD B.MSN C.Oracle D.Windows Media Player 9. 在下列有关 Windows 98/2000/XP 操作系统的叙述中,错误的是 9 。 A.系统采用并发多任务方式支持多个任务在计算机中同时执行 B.系统总是将一定的硬盘空间作为虚拟内存来使用 C.文件(夹)名的长度可达 200 多个字符 D.硬盘、光盘、优盘等均使用 FAT 文件系统 10. 在下列有关算法和数据结构的叙述中,错误的是 10 。 A.算法通常是用于解决某一个特定问题,且算法必须有输入和输出 B.算法的表示可以有多种形式,流程图和伪代码都是常用的算法表示方法 C.常用的数据结构有集合结构、线性结构、树形结构和网状结构等 D.数组的存储结构是一种顺序结构 11?因特网的 IP 地址由三个部分构成,从左到右分别代表 11 。 A.网络号、主机号和类型号 B.类型号、网络号和主机号 C.网络号、类型号和主机号 D.主机号、网络号和类型号
广东省计算机二级(网页设计与制作)复习资料
网页制作基础试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 1.目前在Internet上应用最为广泛的服务是( B) A.FTP服务 B.WWW服务 C.Telnet服务 D.Gopher服务 2.在域名系统中,域名采用( C) A.树型命名机制 B.星型命名机制 C.层次型命名机制 D.网状型命名机制 3.IP地址在概念上被分为( B) A.二个层次 B.三个层次 C.四个层次 D.五个层次 4.在网站设计中所有的站点结构都可以归结为( B) A.两级结构 B.三级结构 C.四级结构 D.多级结构 5.Web安全色所能够显示的颜色种类为( C) A.4种 B.16种 C.216种 D.256种 6.为了标识一个HTML文件应该使用的HTML标记是( C ) A. B.