C语言习题1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是(B)。

ch='a'; k=12; printf("%x,%o,",ch,ch); printf("k=%%d\n",k);

A、61,141,k=%12

B、61,141,k=%d

C、因变量类型与格式描述符的类型不匹配,输出无定值

D、输出项与格式描述符个数不符,输出为零值或不定值

2.以下不符合C语言语法的赋值语句是(D)。

A、j=j+1;

B、j=j=5;

C、k=(2*4,k*4);

D、y=float(j);

3.判断两个字符串是否相等,正确的表达方式是D

A、while(s1=s2)

B、while(s1= =s2)

C、while(strcmp(s1,s2)=0)

D、while(strcmp(s1,s2)= =0)

4.以下能正确定义数组并正确赋初值的语句是(D)。

A、int c[2][]={{1,2},{3,4}};

B、int a[1][2]={{1},{3}};

C、int N=5,b[N][N];

D、int d[3][2]={{1,2},{34}};

5.下列语句中,不正确的是(D)。

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

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

C、static char a[2]={'1'};

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

6.两个指针变量不可以(D)。

A、指向同一地址

B、比较

C、相减

D、相加

7.若以"a+"方式打开一个已存在的文件,则以下叙述正确的是(D)。

A、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作

B、其他各种说法皆不正确

C、文件打开时,原有文件内容被删除,只可作写操作

D、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作

8.以下程序的运行结果是x=123.459780。

#include

main()

{

double x = 123.45478;

x = (x* 100 + 0.5) / 100;

printf("x = %f\n", x)'

}

9. 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是___3__.

for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y);

10. 若有以下定义和语句: int a[5]={1,3,5,7,9},*p; p=&a[2]; 则++(*p)的值是__6___.

11. x=5,y=8时,c语言表达式5-2>=x-1<=y-2的值是___1__.

12.【程序设计】

功能:根据整型形参m,计算如下公式的值:

y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)

例如:若m=9,则应输出:1.168229

#include "stdio.h"

void TestFunc();

double fun(int m)

{

/**********Begin**********/

double y=0;

int i;

for(i=0; i<=m; i++)

{y+=1.0/(i+5); }

return(y);

/********** End **********/

}

void main()

{

int n;

printf("Enter n: ");

scanf("%d", &n);

printf("\nThe result is %1f\n", fun(n));

TestFunc();

}

void TestFunc()

{

FILE *IN,*OUT;

int s,i ;

int t;

float o;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("Read File Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("Write File Error");

}

for(i=0;i<5;i++)

{

fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,"%f\n",o);

}

fclose(IN);

fclose(OUT);

}

13.功能:在字符串str中找出ASCII码值最小的字符,将其放在第一

个位置上,并将该字符前的原字符向后顺序移动。

例如:调用fun函数之前给字符串输入:eBCDAFGH,调用后字符串中的内容为:AeBCDFGH。

#include

#include

void fun(char *p)

{

char min,*q=p;int i=0;

min=p[i];

while(p[i]!=0)

{

if(min>p[i])

{

min=p[i];

/**********ERROR**********/

p=p+i;

}

i++;

}

/**********ERROR**********/

while(q

{

/**********ERROR**********/

*q=(q-1);

q--;

}

p[0]=min;

}

相关文档
最新文档