当前位置:首页 > C语言习题1
1、若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97), 则以下程序段的执行结果是(B)。
ch='a'; k=12; printf(\
A、61,141,k= 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. 若以\方式打开一个已存在的文件,则以下叙述正确的是(D)。
A、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 B、其他各种说法皆不正确
C、文件打开时,原有文件内容被删除,只可作写操作
D、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 8. 以下程序的运行结果是x=123.459780 。
#include
double x = 123.45478; x = (x* 100 + 0.5) / 100; printf(\
}
9. 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是___3__.
for (x=0,y=0;y!=123&&x<3;x++) scanf (\
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 \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(\ scanf(\
printf(\ TestFunc(); }
void TestFunc() {
FILE *IN,*OUT; int s,i ; int t; float o;
IN=fopen(\ if(IN==NULL) {
printf(\ }
OUT=fopen(\
if(OUT==NULL) {
printf(\ }
for(i=0;i<5;i++) {
fscanf(IN,\ o=fun(t);
fprintf(OUT,\ }
fclose(IN); fclose(OUT); }
13.功能:在字符串str中找出ASCII码值最小的字符,将其放在第一 个位置上,并将该字符前的原字符向后顺序移动。
例如:调用fun函数之前给字符串输入:eBCDAFGH,调用后字符串 中的内容为:AeBCDFGH。
#include
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; }
void main() {
char str[80];
printf(\
printf(\ fun(str);
printf(\}
【参考答案】 q=p+i; 【参考答案】 while(q>p) while(p 14.功能:在字符串str中找出ASCII码值最小的字符,将其放在第一 个位置上,并将该字符前的原字符向后顺序移动。 例如:调用fun函数之前给字符串输入:eBCDAFGH,调用后字符串 中的内容为:AeBCDFGH。 #include 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; } void main() { char str[80]; printf(\ printf(\ fun(str); printf(\} 【改错1】 错误 【学生答案】 p=p+i; 【参考答案】 q=p+i; 【改错2】 错误 【学生答案】 while(q p) while(p ============================================================ 【改错3】 错误 【学生答案】 *q=(q-1); 【参考答案】 *q=*(q-1); q[0]=q[-1];
共分享92篇相关文档