C语言习题2

更新时间:2023-12-16 01:07:01 阅读量: 教育文库 文档下载

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

一,选择

1,若k,g均为int型变量,则下列语句的输出为(A)。

k=017; g=111; printf(\

A、16 6f B、15 6f C、16 70 D、15 71

2设有定义语句char c1=92, c2=92;,则以下表达式中值为零的是(C)

A、c1|c2 B、c1&c2 C、c1^c2 D、~c2

3, 以下运算符中优先级最低的是(C)。

A、| B、& C、|| D、&&

4, 下列程序段的输出结果为(A)。

float k=0.8567;

printf(\

A、0085.7% B、.857 C、0085.6% D、0085.6%%

5 以下程序的输出结果是(C) main()

{ int a = 2, b =5;

printf(“a=%%d,b=%%d\\n”,a, b); }

A、a=%2,b=%5 B、a=%%d,b=%%d C、a=%d,b=%d D、a=2,b=5

6, 以下程序的运行结果是(B)

main()

{ int a=2, b= -1, c=2 ; if (a

if(b<0) c=0; else c+=1;

printf(“%d\\n”, c ); }

A、0 B、2 C、1 D、3

7, 以下不是无限循环的语句为(C)。

A、for(;;x++=i); B、while(1){x++;}

C、for(y=0,x=1;x>++y;x=i++) i=x;

D、for(i=10;;i--) sum+=i;

8, 以下对一维整型数组a的正确说明是(B)。

A、int n; scanf(\

B、#define SIZE 10 (换行) int a[SIZE]; C、int a(10); D、int n=10,a[n];

9, 下列语句中,不正确的是(C)。

A、static char a[2]={'1'}; B、static char a[2]={1,2};

C、static char a[2]={'1','2','3'}; D、static int a[2]={'1','2'};

10, 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(D)。 A、传递方式由用户指定 B、地址传递

C、由实参传给形参,再由形参传回实参 D、单向值传递

11, C语言执行程序的开始执行点是(B)。 A、程序中第一个函数 B、程序中的main函数

C、程序中第一条可以执行语言 D、包含文件中的第一个函数

12, 若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的

地址的是(D)。

A、&aa[0]+1 B、aa+1 C、&aa[1] D、&aa[0]++

13, 执行下列语句后的结果为(D)。

int x=3,y; int *px=&x; y=*px++;

A、x=3,y=4 B、x=3,y不知 C、x=4,y=4 D、x=3,y=3

14, 当说明一个结构体变量时系统分配给它的内存是(A)。

A、各成员所需内存量的总和

B、成员中占内存量最大者所需的容量 C、结构中最后一个成员所需内存量 D、结构中第一个成员所需内存量

15, 应用缓冲文件系统对文件进行读写操作,打开文件的函数名为(B)。

A、close B、fopen C、fclose D、open

二,填空

1,以下程序运行后的输出结果是_b____。

main() { char m;

m='B'+32; printf(\ }

2, 以下程序的执行结果是___9__。

main() {

int k=8; switch(k) {

case 9: k+=1; case 10: k+=1;

case 11: k+=1; break; default: k+=1; }

printf(\\n\); }

3, do while循环结构初始条件为False时循环体被执行__1___次

4, 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最大的元素的下标是_2____. 5, C语言源程序的基本单位是__函数___.

6,与指针引用有关的两个运算符是*和__&___

7,结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体_类型____,再说明结构体变量

8,调用 fopen 函数打开一文本文件,在\使用方式\这一项中, 以“追加”方式打开需填入_a/a+____.

9, 已知a=13,b=6, a/b的十进制数值为__2___. 10, 设w=5;w+= -2;则w的值为__3___. 三,【程序设计】

功能:用函数求N个整数中能被5整除的最大的数,如存在, 则返回这个最大值,如果不存在则返回0。 void TestFunc();

int find(int arr[],int n) {

int m=0;

/**********Begin**********/ int i;

for(i=0;i

if(arr[i]%5==0 && arr[i]>m) m=arr[i];

/********** End **********/ return(m); }

#define N 10

#include \#include \void main() {

int a[N],i,k; for(i=0;i

printf(\

if((i+1)%5==0) printf(\ }

k=find(a,N); if(k==0)

printf(\ else

printf(\ TestFunc(); }

void TestFunc() {

FILE *IN,*OUT; int n; int i[5]; int o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(n=0;n<5;n++) {

fscanf(IN,\ }

o=find(i,5);

fprintf(OUT,\ fclose(IN); fclose(OUT);]

四, 【程序改错】 功能:根据整型形参m,计算如下公式的值: y=1/2+1/8+1/18+...+1/2m*m y+=x; 或y=y+x;或 y=x+y; #include \

【参考答案】

double y=0;

while(i<=m) while(i

/**********ERROR**********/ double y=0 double x; int i=1;

/**********ERROR**********/ while( i

x=1.0/(2*i*i);

/**********ERROR**********/ y=+x; i++; }

return(y); }

void main() {

int n;

printf(\ scanf(\

printf(\}

五,【程序填空】

功能:产生并输出杨辉三角的前七行。 1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1 注:填空时,请使用下标法引用数组元素 #include void main ( ) {

int a[7][7]; int i,j,k;

for (i=0;i<7;i++) {

a[i][0]=1; a[i][i]=1; }

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

/**********FILL**********/ for (j=1;j<__=i___;j++)

/**********FILL**********/ a[i][j]= _j

/**********FILL**********/ for (j=0; j-1

/**********FILL**********/ a[i][j]= _j

/**********FILL**********/ for (j=0; j-1

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

Top