文档介绍:该【中国海洋大学C语言11级期末卷公开课一等奖课件赛课获奖课件 】是由【梅花书斋】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【中国海洋大学C语言11级期末卷公开课一等奖课件赛课获奖课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。一 (20分)单项选择题(共10题,每题2分)
1下列符号中,不是合法转义字符的是 。
(A) ’\\’ (B) ‘\018’ (C) ‘\t’ (D) ‘\0’
2如下初始化语句中能对的赋值的是 。
(A) char a[5]=”HELLO”; (B) int a=b=1;
(C) int *a=1000; (D) int a[3][2]={{0,1},{1}};
3若a=1,b=2,则执行w = (a<b) ?a++ : b--;语句后的b的值是 。
(A) 0 (B) 1 (C) 2 (D) 3
4 在do--while语句中,条件体现式的值为______时,结束循环。
(A) 0 (B) 1 (C) true (D) 非0值
5 设a是一种m行n列的二维数组,则a[i][j]是该数组中的第 个元素。
(注:a[0][0]表达该数组中的第0个元素)
(A) i*m+j (B) i*n+j (C) j*m+i (D) j*n+i
6 若有申明void *fun(); 下列说法对的的是 。
(A) fun函数无返回值;
(B) fun函数的返回值可以是任意的数据类型;
(C) fun函数的返回值是指向空类型的指针;
(D) fun是一种指向函数的指针,该函数无返回值。
7 如下论述中对的的是 。
(A) 局部变量阐明为static存储类,其生存期将得到延长;
(B) 全局变量阐明为static存储类,其作用域将被扩大;
(C) 任何存储类的变量在未赋初值时,其值都是不确定的;
(D) 形参可以使用的存储类阐明符与局部变量完全相似。
8 若有语句int c[4][5],(*p)[5];p=c; 能对的引用数组元素的是 。
(A) p+1 (B) *(p+3)
(C) *(p+1)+3 (D) *(p[0]+2)
9 若有定义:typedef union data {long i;short k[6];char c[4];}DATE;则体现式sizeof(DATE)的值是 。
(A) 32 (B) 24 (C) 20 (D) 12
10 若调用fputc( )函数输出字符成功,则其返回值是 。
(A) 输出的字符 (B) 0 (C) 1 (D) EOF
二 (18分)程序分析(共3题,每题6分)
1 分析下面程序的输出成果并阐明程序的功能。(输入:N=5)
#include <>
void main()
{int i,j,k,N,count;
int data[10][10]={0};
scanf("N=%d",&N);
count=N*N;
for(k=0;k<N/2;k++)
{ for(i=k;i<N-k;i++) data[k][i]=count--;
for(i=k+1;i<N-k;i++) data[i][N-k-1]=count--;
for(i=N-k-2;i>k;i--) data[N-k-1][i]=count--;
for(i=N-k-1;i>k;i--) data[i][k]=count--;
}
if(N%2!=0) data[N/2][N/2]=1;
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%3d",data[i][j]);
printf("\n");
}
}
2 分析下面程序的输出成果并阐明程序的功能。(输入:num=11)
#include<>
#define M 2
unsigned process(unsigned n)
{ static unsigned S=1;
unsigned d,e;
d=n/M;
if(d==0)
e=1;
else
{ S*=M;
e=M*process(d);
}
if (e==1) printf("(");
printf("%d",n%M);
if (S==e) printf(")%d\n",M);
return(e);
}
void main()
{ unsigned num;
scanf("num=%u",&num);
printf("(%u)10 = ",num);
process(num);
}
3 分析下面程序的输出成果。
#include "“
char input[ ]= "SSWILTECH1\1W\1WALLMP1";
void main()
{ int i,c;
for (i=1; (c=input[i])!='\0'; i++)
{switch(c)
{case 'a': putchar('i');continue;
case '1': break;
case '\1': while((c=input[++i])!='\1'&&c!='\0');
case '9': putchar('S');
case 'E':
case 'L': continue;
default: putchar(c);continue;
}
putchar(' ');
}
putchar('\n');
}
三 (32分)程序填空(共2题,每空4分)
1.输出杨辉三角形。杨辉三角形具有如下性质:
⑴ 首行只有一种元素1;
⑵ 从第二行开始,首、末两元素都为1,中间的第k个元素是上一行第k-1个元素和第k个元素之和。
#include <>
#define LASTROW 8
void main()
{int row,col,a[LASTROW];
a[0]=1;
printf("%5d\n",a[0])
for(row=1;row<LASTROW;row++)
{ ① ;
for( ② ;col>=1; ③ )
④ ;
for(col=0;col<=row;col++)
printf("%5d",a[col]);
printf("\n"); }}