c程2001B试卷

更新时间:2024-03-27 06:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙江大学“程序设计基础-C”试题卷

2001-2002学年春季学期

考试时间: 2002年6月30日下午2:00-4:00

注意:答题内容必须写在答题卷上,写在本试题卷上无效

一.单项选择题(每题2分,共20分)

1. C 语言程序的三种基本结构是顺序结构、选择结构和______结构。

A.递归 B.转移 C.循环 D.嵌套 2. 下列运算符中,优先级最高的是_____。

A.-> B.++ C.&& D.= 3. 表达式 !(x>0&&y>0) 等价于_____。

A.!(x>0)||!(y>0) B.!x>0||!y>0 C.!x>0&&!y>0 D.!(x>0)&&!(y>0) 4. 表达式 sizeof(\的值是______。

A.8 B.9 C.10 D.11 5. 以下选项中不正确的实型常量是_____。

A.0.23E B.2.3e-1 C.1E3.2 D.2.3e0 6. 表达式______的值不是1。

A.0?0:1 B.5%4 C.!EOF D.!NULL 7. 数组定义为 int a[11][11],则数组a 有_____个数组元素。

A.12 B.144 C. 100 D. 121 8. 对于以下的变量定义,表达式______是不正确的。

struct node { int j, k; } x, *p=&x; A.p->k=2 B.(*p).k=2 C.x.k=2 D.x->k=2 9. 不正确的赋值或赋初值的方式是______。

A.char str[ ]=\B.char str[10]; str=\ C.char *p=\D.char *p; p=\

10. 设程序中不再定义新的变量,写出在函数main中可以使用的所有变量______。 #include int z; int p(int x) { static int y; return(x+y); }

void main( )

{ int a,b;

printf(\ ?? }

A.a, b

B.a,b,z C. a,b,y,z D.a,b,x,y,z

2001-2002学年春季学期“程序设计基础-C”试题卷 第 1 页(共6页)

二、填空题(每题2分,共30分)

1. 设字符型变量ch的值是小写英文字母,将它转换为相应大写字母的表达式是______。 2. 表达式 1<0<5 的值是______。 3. 表达式 ~(10>>1^ ~5) 的值是______。 4. 下列程序段的输出结果是______。

int a=1;

long b=a*0x12345678; printf(\

5. 设变量已正确定义,在程序段B中填入正确的内容,使程序段A和程序段B等价。 程序段A

for(k=s=0; k<=10; s+=a[k++]) if (a[k]<0) break; 程序段B

for(k=0, s=0; ; s+=a[k++])

if (______) break;

6. 下列程序段的输出结果是_____。 #define T 10 #define MD 3*T printf(\

7. 下列程序段的输出结果是_____。

int k, s;

for(k=s=0; k<10&&s<=10; s+=k) k++;

printf(\

8. 下列程序的输出结果是_____。 # include

int f(int m)

{ static int k=2; k++;

return k+m;

}

void main( ) { int s; s=f(2);

printf(\}

9. 对于以下递归函数f,调用 f (3) 的返回值是_____。

f (int n)

{ return ((n<=0) ? n: f(n-1)+f(n-2)); }

2001-2002学年春季学期“程序设计基础-C”试题卷 第 2 页(共6页)

10. 下列程序段的输出结果是_____。

int c[ ]={10, 0, -10};

int *k=c+2; printf(\

11. 下列程序段的输出结果是_____。

int k=1, j=2, *p=&k, *q=p; p=&j; printf(\

12. 下列程序的输出结果是_____。 # include char * f(char *str)

{ return str=\ }

void main( )

{ char *str=\

printf(\}

13. 下列程序的输出结果是_____。

#include void p(int *x,int y)

{ ++ *x; y --; }

void main() { int x=0, y=3; p(&x, y);

printf(\ }

14. 下列程序的输出结果是_____。 # include \ void main( )

{ int j, k, a[2][2]; for(k=1; k<3; k++) for(j=1; j<3; j++)

a[k-1][j-1]=(k/j)*(j/k); for(k=0; k<2; k++) for(j=0; j<2; j++)

printf(\ }

15. 用typedef定义一个指向函数的指针类型FP,该函数的返回值为整型。

三、程序阅读题(每题5分,共15分)

2001-2002学年春季学期“程序设计基础-C”试题卷 第 3 页(共6页)

1. 输入c2470f ?<回车>后,下列程序的输出结果是_______,该程序的主要功能是_______。

# include \ int main( ) { char ch;

long number=0;

while((ch=getchar())<'0'||ch>'6') ; while(ch!='?'&&ch>='0'&&ch<='6'){ number=number*7+ch-'0'; printf(\

ch=getchar();

}

}

2.输入4<回车>后,下列程序的输出结果是_______。

# include \int main( ) { int j,k,n; float f,s;

scanf(\ s=0; f=1;

for(k=1;k<=n;k++){ for(j=1;j

printf(\ } }

3.输入55 92 63 69 -1<回车>后,下列程序的输出结果是_______。#include #include struct link {

int mark; struct link * next; };

void f(struct link **); main( )

{ struct link * head, *p;

head=(struct link *)malloc(sizeof(struct link)); head->mark = 0; head->next=NULL;

2001-2002学年春季学期“程序设计基础-C”试题卷 第 4 页(共6页)

f(&head);

for (p=head; p!=NULL; p=p->next) printf(\}

void f(struct link ** head) { int mark;

struct link *p; scanf(\ if ( mark<=0){

(*head)->mark++; return ; }

else{

p=(struct link *)malloc(sizeof(struct link)); p->mark = mark; p->next = *head; *head = p; f(head); } }

四、程序填空题(每空2分,共20分)

1. 输入10个浮点数,调用函数f(x)计算并输出相应的函数值。 f(x)的功能是计算分段函数:

x2+2x+1 x<0 y= 0 x=0 3 x>0 #include

{ if (x<0) ⑵ ; else ⑶ ; else return 3; }

void main( ) { int k; float x;

for(k=1; k<=10; k++){ scanf(\ printf(\ } }

2001-2002学年春季学期“程序设计基础-C”试题卷 第 5 页(共6页)

2. 函数sort 使用冒泡法将一维整型数组中各元素按值从大到小排序。 void sort( int a[ ], int n) { int k, j, t;

for(k=1; k

for( ⑷ ; j < n-k; j++)

if( ⑸ ) ⑹ }

3. 输入1个长整数,求各位数字的平方和。 例如:输入-123,输出14。 #include void main( ) { int digit;

long in,s;

scanf(\ ⑺ ; ⑻ ; while(in>0){

⑼ ; s=s+digit*digit; ⑽ ; }

printf(\}

五、编程题 (共15分)

1.函数 ff(str,ch)的功能是统计并返回字符ch在字符串str中出现的次数。

例如:调用ff(\后返回2,因为在字符串\中字符'e'出现了2次。

2.从键盘输入一个字符ch,输出该字符在文本文件 input.txt 的每一行中出现的次数。 ( 必须调用第1题定义的函数 ff 统计ch的出现次数 )。 例如:如果文件input.txt中存放了下列数据: every 121

I am a student.

运行程序,并输入'e'后,输出 2 0 1

2001-2002学年春季学期“程序设计基础-C”试题卷 第 6 页(共6页)

2. 函数sort 使用冒泡法将一维整型数组中各元素按值从大到小排序。 void sort( int a[ ], int n) { int k, j, t;

for(k=1; k

for( ⑷ ; j < n-k; j++)

if( ⑸ ) ⑹ }

3. 输入1个长整数,求各位数字的平方和。 例如:输入-123,输出14。 #include void main( ) { int digit;

long in,s;

scanf(\ ⑺ ; ⑻ ; while(in>0){

⑼ ; s=s+digit*digit; ⑽ ; }

printf(\}

五、编程题 (共15分)

1.函数 ff(str,ch)的功能是统计并返回字符ch在字符串str中出现的次数。

例如:调用ff(\后返回2,因为在字符串\中字符'e'出现了2次。

2.从键盘输入一个字符ch,输出该字符在文本文件 input.txt 的每一行中出现的次数。 ( 必须调用第1题定义的函数 ff 统计ch的出现次数 )。 例如:如果文件input.txt中存放了下列数据: every 121

I am a student.

运行程序,并输入'e'后,输出 2 0 1

2001-2002学年春季学期“程序设计基础-C”试题卷 第 6 页(共6页)

本文来源:https://www.bwwdw.com/article/ip9r.html

Top