C语言习题1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;
}