#include<stdio.h> void main() { char a='本金',b='年数',c='年利率',d='应得利息'e='实得利息'f='最终本

请问这个C程序哪里错了啊!!!急急急!!!!大家帮个忙了!!!!

给你贴个卷子,供你参考:
一、单项选择题 1.函数调用语句:fseek(fp,-20L,2);的含义是( )。A)将文件位置指针移到距离文件头20个字节处
B)将文件位置指针从当前位置向后移动20个字节
C)将文件位置指针从文件末尾处后退20个字节
D)将文件位置指针移到距离当前位置20个字节处
2.C语言规定,函数返回值的类型是由( )。A)return语句中的表达式类型所决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
3.下列转义字符不正确的是( )。A)’\\’
B)’\ab’
C)’\083’
D)’\0’
4.C语言中运算对象必须是整型的运算符是( )。A)/
B)++
C)%
D)!=
5.下列选项中属于不正确的赋值语句的是( )。A)t--;
B)k=i==j;
C)t1=t2=t3=3;
D)t1=1,t2=2;
6.在PC 16位机下,下列程序执行后的输出结果是( )。
main( )
A)-32767
B)FFFE
C)-1
D)-32768
7.以下程序的输出结果是( )。
main()
{ int x=’a’,y=’b’;
printf(“x=%%%c,y=%%%c\n”,x,y);}A)x=%a,y=%b
B)x=a,y=b
C)x=%%%c,y=%%%c
D)x=%%c,y=%%c
8.执行下列程序中的输出语句后,x的值是( )。
main()
{int x ;
printf(“%d\n”,(x=4*5,x*2,x+20));}A)20
B)40
C)60
D)80
9.执行以下程序后的输出结果是( )。
#include "stdio.h"
void main()
{
int i = 0, j = 0, a = 6;
if ((++i0)||(++j0)) a ++;
printf("i=%d, j=%d, a=%d\n", i, j, a);
}A)i=0, j=0, a=6
B)i=1, j=1, a=7
C)i=1, j=0, a=7
D)i=0, j=1, a=7
10.为表示“a和b都不等于0”,应使用的C语言表达式是( )。A)(a!=0) || (b!=0)
B)a || b
C)!(a=0)(b!=0)
D)a b
11.执行以下程序的输出结果是( )。
main()
{ int i=1,j=1,k=2;
if((j++||k++) i++)
printf("%d,%d,%d\n",i,j,k);
}A)1,1,2
B)2,2,1
C)2,2,2
D)2,2,3
12.以下程序的输出结果是( )。
main()
{int a=0,b=1,c=0,d=20;
if (a) d=d-10;
else if (!b)
if (!c) d=15;
else d=25;
printf("d=%d\n",d);
}A)d=10
B)d=15
C)d=20
D)d=25
13.以下程序的输出结果为( )。
#include "stdio.h"
void main()
{
int a=1,b=0;
for(;a3;a++)
switch(a++)
{
case 1: b--;break;
case 2: b++;break;
case 3: b+=3;break;
}
printf("%d\n",b);
}A)0
B)-1
C)3
D)其他
14.以下程序的运行结果是( )。
void main()
{
int a=4; char ch=’a’;
printf( "%d\n",(a2)(ch’A’));
}A)0
B)1
C)2
D)3
15.设有程序段 char k;while (k0) k++; printf("%d\n",k);则程序输出结果为( )。A)-127
B)256
C)-128
D)128
16.下列程序的运行结果是( )。
main()
{ int y=10;
do while(y);
printf(“%d\n”,y- -);}A)-1
B)-2
C)9
D)0
17.以下是求两个正整数的最大公约数的函数fun( ), 下划线处应填入的正确语句为( )。
int fun(m,n)
int m,n;
{int r;
if(mn)
if(n= =0) return(m);
do{ r=m%n;
if (r!=0)
} while (______);
return(n);
}A)r!=0
B)r==0
C)n!=0
D)n==0
18.现已定义整型变量int i=1; 执行循环语句“while(i++5);”后,i的值为( )。A)1
B)5
C)6
D)以上三个答案均不正确
19.以下程序的输出结果是( )。
main()
{int a=0,j;
for(j=0;j4;j++)
{switch(j)
{case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}A)20
B)13
C)10
D)36
20.若a、b均为int型变量,且a=100,则以下关于for循环语句的正确判断为( )。
for(b=100;a!=b;++a,b++)printf("————\n");A)循环体只执行一次
B)是死循环
C)循环体一次也不执行
D)输出————
21.下面有关for循环的描述正确的是( )。A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)for循环中可以用break语句跳出循环体
D)for循环中可以包含if语句,但必须用花括号括起来
22.以下程序的输出结果为( )。
#include stdio.h
main()
{ int i=0,a=0;
while(i20)
{ for( ; ; )
{ if((i%10)==0) break;
else i--; }
i+=11; a+=i;
}
printf("%d\n",a);
}A)21
B)32
C)33
D)11
23.下列说法正确的是( )。A)break 用在switch语句中,而continue 用在循环语句中
B)break 用在循环语句中,而continue用在switch语句中
C)break 能结束循环,而continue只能结束本次循环
D)continue能结束循环,而break只能结束本次循环
24.若有以下程序段
… …
int a[ ]=,i,j,t;
for(i=1;i5;i++)
{t=a[i];j=i-1;
while(j=0ta[j])

a[j+1]=t;}
… …
则该程序段的功能是( )。A)对数组a进行插入排序(升序)
B)对数组a进行插入排序(降序)
C)对数组a进行选择排序(升序)
D)对数组a进行选择排序(降序)
25.下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( )。
#include "stdio.h"
main()
{int i,ch, n[10];
for(i=0;i10;++i) n[i]=0;
while((ch=getchar())!=‘\n’)
if(ch=‘0’ ch=‘9’)
________;
for(i=0;i10;++i)
printf("数字%d出现的次数是:%d\n",i,n[i]);
}A)n[ch-‘0’]++
B)n[ch]++
C)i++
D)n[i]++
26.以下程序段输出字符串str的内容, 其中循环条件str[i]!= ’\0’还可以写成( )。
char str[80];
for(i=0;str[i]!=’\0’ i++)
putchar(str[i]);A)str[i]!=NULL
B)i 80
C)!(str[i])= ’\0’
D)i=80
27.下列程序的运行结果是( )。
main()
{int a=4,y;
y=fn(a,++a);
printf(“%d”,y);}
int fn(x,c)
{int b;
if(xc)b=1;
else if(x==c)b=0;
else b=-1 ;
return(b);
}A)4
B)-1
C)1
D)0
28.下列程序执行后的输出结果是( )。
void func(int *a,int b〔〕)

main()
;
a=0; b〔0〕=3;
func(a,b); printf("%d\n",b〔0〕);
}A)6
B)7
C)8
D)9
29.函数f定义如下,执行语句“m=f(5);”后,m的值应为( )。
int f(int k)
{ if(k==0||k==1) return 1;
else return f(k-1)+f(k-2);
}A)3
B)8
C)5
D)13
30.下列关于字符串操作的输出结果是( )。
#include "stdio.h"
#include "string.h"
void main()
{
char p1[20]="abcd",p2[20]="ABCD";
char str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s\n",str);
}A)xyabcAB
B)abcABz
C)Ababcz
D)xycdBCD
31.有如下程序,该程序的输出结果是( )。
long f(int n)
{ if(n2) return(f(n-2)+f(n-3));
else
if(n==2) return(2);
else return(1); }
main()
A)2
B)3
C)4
D)5
32.以下程序的输出结果是( )。
#include "stdio.h"
void fun(int *p)
{
int a=10;
p=a;
++a;
}
void main()
{
int a=5;
fun(a);
printf("%d\n",a);
}A)5
B)6
C)10
D)11
33.如果要限制一个变量只能被本程序文件使用,必须通过( )来实现。A)静态内部变量
B)外部变量声明
C)静态外部变量
D)局部变量声明
34.以下程序的运行结果是( )。
void fun(int *n)
{
static int m=2;
*n*=m-1; m+=2;
}
void main()
{
static int m=1;
int i;
for(i=1;i4;i++)
fun(m);
printf("%d\n",m);
}A)8
B)10
C)11
D)15
35.设有下列定义:
static int x,*p=x,*q;
scanf(“%d,%d”,p,q);
若输入5,6,则x的值为( )。A)5
B)6
C)0
D)无法确定
36.以下程序的输出结果是( )。
#include stdio.h
#define H1 5
#define H2 H1+1
#define H3 H2*H2/2
void main()
{
int s=0,k=H3;
while(k--)s++;
printf("%d\n",s);
}A)18
B)19
C)10
D)宏定义有错,不能编译
37.执行以下程序后,a的值为( )。
int *p,a=10,b=1;
p=a;a=*p+b;A)12
B)编译出错
C)10
D)11
38.下列程序段的输出结果是( )。
int c[ ]=;
int *k=c+1;
printf("%d",*k++);A)2
B)7
C)8
D)12
39.若有二维数组定义语句:int a[4][5]; 则对元素a[2][3]的引用方式不正确的是( )。A)*(a[2][3])
B)*(a+5*2+3)
C)*(a[2]+3)
D)*(*(a+2)+3)
40.已知有以下的说明,
int a[]=; 那么a[*(a+a[3])]的值为( )。A)5
B)0
C)4
D)7
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-04
d",c);//不知道C++有什么用;
if(i%k==0)break;else return 1;//这一句有问题,如果找到一个非素数,就返回,即结束程序是错误的,我改了下,只输出素数见的和,你看下:
#include "stdio.h"
int li(int,int);
void main()
{
int a,b,c=0;
printf("请输入两个数字:");
scanf("%d%d",&a,&b);
if(a>b)
{
printf("%d到%d有",b,a);
c=li(a,b);
printf("%d",c);
}
else if(a<b)
{
printf("%d到%d有",a,b);
c=li(a,b);
printf("%d",c);
}
}
int li(int a,int b)
{
int i,j,k,value=0;
if(a>b)
{
i=b;j=a;
}
else if(a<b)
{
i=a;j=b;
}
for(;i<=j;i++)
{
for(k=2;k<i/2;k++) //这里如果i,j有小于5的,将要另做处理!
if(i%k==0) break;
if(k==i/2)
value+=i;

}
return value;
}

希望kutpbpb的回答能读你有所帮助!
第2个回答  2011-03-03
#include<stdio.h>
void main()
{
char a[]="本金",b[]="年数",c[]="年利率",d[]="应得利息",e[]="实得利息",f[]="最终本";
}
注意 char 类型的变量只能保存一个字节,如 char a = 'a';
要保存字符串,用 char 数组,如 char a[] ="我一个字符串";本回答被提问者采纳
第3个回答  2011-03-03
char改为string型,将‘’改为“”

#include<stdio.h> void main() { char a='本金',b='年数',c='年利率...
#include<stdio.h> void main() { char a='本金',b='年数',c='年利率',d='应得利息'e='实得利息'f='最终本 请问这个C程序哪里错了啊!!!急急急!!!大家帮个忙了!!!... 请问这个C程序哪里错了啊!!!急急急!!!大家帮个忙了!!! 展开  我来答 4个回答 #热议# 怎么买保险?答案全...

#include"list.h" void main() { char a[12]={'a','b','c','d','e...
include<stdio.h> void main(){ char a[]="本金",b[]="年数",c[]="年利率",d[]="应得利息",e[]="实得利息",f[]="最终本";} 注意 char 类型的变量只能保存一个字节,如 char a = 'a';要保存字符串,用 char 数组,如 char a[] ="我一个字符串";

#include <stdio.h> int main(void) { char a[]="abcdefg"; char *...
b是char指针,指针在32位系统下一般是4个字节。

有以下程序 main() { char a[ ]={'a','b','c','d','e','f','g','h...
\/\/答案是:d 9,8 \/\/但程序有错误,正确有是:include<stdio.h> include<string.h> void main(){ char a[ ]={'a','b','c','d','e','f','g','h','\\0'};int i,j;i=sizeof(a); j=strlen(a);printf("%d,%d\\n",i,j);} ...

#include<stdio.h> #include<string.h> main() {char a[20]="ABCD\\O...
你如果确信你的数据是"ABCD\\OEFG\\0" D后是\\O(字母O,而不是0)则你的程序运行结果是: ABCDOEFGIJK 如果你的数据是:"ABCD\\0EFG\\0" D后是\\0(数字0)则你的程序运行结果是: ABCDIJK strcat时是从第一个地址位置开始,先找到\\0位置,然后将第二个指针所指的内容连到其后。

#include <stdio.h> void mian() { int a=0,b=0,c=0,d=0; char x...
include<stdio.h> void main(){ char a[100];gets(a);int len=strlen(a);int i,en=0,digital=0,space=0,other=0;for(i=0;i<=len;i++)if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')en++;else if(a[i]>='0'&&a[i]<='9')digital++;else if(a[i]==...

C语言 不会读程序 #include<stdio.h> void main( ) {
char 是定义的字符型 对照书后面的 码值换成0到255的数在判断就好

# include <stdio.h> # include <string.h> void main() { char *...
意思是str[50]="xyz",这个字符数组以首地址为基准向右移动3个位置为空就是z后面的位置,str+2就是向右移动2个位置是z。就是这个意思。这个问题归结为数组指针的位置,希望你多看看数组指针~~~

#include<stdio.h> void main() { char a[]="abc
首先需要确定p的位置,p = a + 8,即p指向的是a[8]的位置。printf ("%s\\n",p-3);s打印的是一个字符串,是从指向的地址开始打印,一直找到\\0停止。p - 3就是a[5]的位置,即'6'开始,一直找到\\0,即a[9]的位置。所以打印的是6789,答案是c。

#include<stdio.h> void main() { char a; char b; char c; printf...
将&去掉,输入字符个数要少于数组元素个数,并用空格或回车隔开两个数组的输入。

相似回答