C语言课堂练习作业

C语言课堂练习作业
C语言课堂练习作业

第一次上机作业

1.输入两个实数,按代数值由大到小输出。

2.输入三个实数,按代数值由大到小输出。

3.输入某学生的成绩,经处理后给出学生的等级如下:

90分以上(包括90分):A

80至90分(包括80分):B

70至80分(包括70分):C

60至70分(包括60分):D

60分以下: E

(1)用if语句实现

(2)用switch语句实现

第二次上机作业

1、利用循环语句编写程序:对一个正整数,将各位数字反序后的数组成一个整数输出。例如:输入12345,输出54321。

#include

void main()

{

long m,n,sum=0;

scanf(“%ld”,&m);

while(m>0)

{

n=m%10;

m=m/10;

sum=sum*10+n;

}

printf(“%ld”,sum);

}

2、从键盘中输入10个数,把这10个数按从小到大的顺序依次输出。

#include

void main()

{

int a[10];

int i,j,t;

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

scanf(“%d”,&a[i]);

for(i=0;i

for(j=0;j

if(a[j]

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

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

printf(“%5d”,a[i]);

}

3、编程求1!+2!+3!+ (20)

4、将一个正整数分解成质因数的乘积。例如:输入90,打印90=2*3*3*5。

#include

void main()

{

int n,i=2;

scanf(“%d”,&n);

printf(“%d=“,n);

while(n>1)

{

if(n%i==0)

{

printf(“%d*”,i);

n=n/i;

}

else i++;

}

printf(“\b “);

}

第三次上机作业

1.从键盘输入n个整数,统计所有下标为奇数且数组元素的值为偶数的个数。

#include

void main()

{ int a[100];

int i,j,n,t,num=0;

scanf(“%d”,&n);

for(i=0;i

scanf(“%d”,&a[i]);

for(i=0;i

if(i%2= =1&&a[i]%2= =0)

num++;

for(i=0;i

printf(“%5d”,a[i]);

printf(“\n%d”,num);

}

2.从键盘输入10个整数,检查整数5是否包含在这些数据中,若是的话,找出它是第几个被输入的。

#include

void main()

{

int a[10],i;

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

scanf(“%d”,&a[i]);

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

if(a[i]==5)

{

printf(“5 is input the position %d\n.”,i+1);

break;

}

if(i>=10)

printf(“5 is not in data.\n”);

}

3、已有一个排序好的数组(从小到大排序),现输入一个数,要求按原来排序的规律将它插入数组中。

#include

void main()

{

int a[50],n,x;

int i;

scanf(“%d”,&n);

for(i=0;i

scanf(“%d”,&a[i]);

printf(“input x:”);

scanf(“%d”,&x);

for(i=0;i

if(a[i]>x)

break;

if(i= =n)

a[i]=x;

else

for(j=n-1;j>=i;j--)

a[j+1]=a[j];

a[i]=x;

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

printf(“%5d”,a[i]);

}

4、.编写一个函数,计算

! (,)

!()!

m

c m n

n m n

=

-

#include long fact(int x); void main()

{

int m,n;

long cmn;

printf(“Input m,n:”);

scanf(“%d,%d ”,&m,&n);

cmn=fact(m)/(fact(n)*fact(m-n));

printf(“The combination is %ld\n ”,cmn);

}

long fact(int x)

{

long y;

for(y=1;x>0;--x)

y*=x;

return(y);

}

2) 写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。 #include

int prime(int n)

{

int i;

for(i=2;i

if(n%i==0)break;

if(i>=n)

return 1;

else

return 0;

}

void main()

{

int n;

printf(“Input a integer:”);

scanf(“%d ”,&n);

if(prime(n))

printf(“%d is a prime\n ”,n);

else

printf(“%d is not a prime\n ”,n);

}

第四次上机作业

1、 求方程的根,用三个函数分别求当大于0,等于0和小于0 时

的根,并输出结果。从主函数输入a 、b 、c 的值。

#include

#include

double x1,x2,p,q,disc;

void greater_than_zero(double a,double b)

{

20ax bx c ++=24b ac -

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

}

void equal_to_zero(double a,double b)

{

x1=x2=-b/(2*a);

}

void smaller_than_zero(double a,double b)

{

p=-b/(2*a);

q=sqrt(-disc)/(2*a);

}

void main()

{

double a,b,c;

printf(“Please input a,b,c:”);

scanf(“%lf,%lf,%lf”,&a,&b,&c);

disc=b*b-4*a*c;

printf(“root:\n”);

if(disc>0)

{

greater_than_zero(a,b);

printf(“x1=%f,x2=%f\n”,x1,x2);

}

else if(disc==0)

{

equal_to_zero(a,b);

printf(“x1=x2=%f\n”,x1);

}

else

{

smaller_than_zero(a,b);

printf(“x1=%f+%fi,x2=%f-%fi\n”,p,q,p,q);

}

}

2、写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。

#include

int prime(int n)

{

int i;

for(i=2;i

if(n%i==0)break;

if(i>=n)

return 1;

else

return 0;

}

void main()

{

int n;

printf(“Input a integer:”);

scanf(“%d”,&n);

if(prime(n))

printf(“%d is a prime\n”,n);

else

printf(“%d is not a prime\n”,n);

}

3、编写一函数,由实参传递一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述结果。

#include

#include

int letter=0,digit=0,space=0,other=0;

void count(char s[])

{

int i=0;

while(s[i]!=‘\0’)

{

if(s[i]>=‘A’&&s[i]<=‘Z’||s[i]>=‘a’&&s[i]<=‘z’)

letter++;

else

if(s[i]>=‘0’&&s[i]<=‘9’)

digit++;

else

if(s[i]==‘‘)

space++;

else other++;

i++;

}

}

void main()

{

char s[20];

printf(“Plese input a string:”);

gets(s);

count(s);

printf(“letter=%d,digit=%d,space=%d,other=%d\n”,letter,digit,space,other);

}

第五次上机作业

1、写一函数,输入一个十六进制数,输出相应的十进制数。

#include

#include

#include

void convert(char s[])

{

int lenght,i;

double num=0;

lenght=strlen(s);

for(i=0;i

{

if(s[i]>=‘0’&&s[i]<=‘9’)

num+=(s[i]-’0’)*pow(16,lenght-i-1);

else

if(s[i]>=‘A’&&s[i]<=‘F’)

num+=(s[i]-55)*pow(16,lenght-i-1);

}

printf(“%f”,num);

}

void main()

{

char s[10];

gets(s);

convert(s);

}

2.将10个整数存入一维数组中,用指针编程实现逆序存放并输出。

#include

void main( )

{

int a[10],*p,*head,*end,temp;

printf("please input 10 numbers:\n");

for(p=a;p<=a+9;p++)

scanf("%d",p);

printf("The original array:\n");

for(p=a;p<=a+9;p++)

printf("%d ",*p);

head=a; end=a+9;

while(head

{

temp=*head;

*head=*end;

*end=temp;

head++;

end--;

}

printf("The array has been inverted:\n");

for(p=a;p<=a+9;p++)

printf("%d ",*p);

}

3、将3行3列的二维矩阵转置输出。

#include

void main( )

{

int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

int b[3][3], i, j,*p=a;

printf(“array a:\n”);

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

{

for(j =0; j <= 2; j++)

{

printf(“%5d”,*p);

b[j][i]=a[i][j];

}

printf(“\n”);

}

printf(“array b:\n”);

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

{

for( j = 0; j <= 2; j++)

printf(“%5d”, *p);

printf(“\n”);

}

}

第六次上机作业

1、从7 个数中找出其中最大值和最小值(用指针实现)

int max , min ;

void max_min_value (int array[ ] , int n )

{

int *p , *array_end ;

array_end = array + n ;

max = min = *array ;

for ( p=array+1; p

if (*p>max ) max = *p ;

else if( *p < min ) min = *p ;

}

void main( )

{

int i, number[7] ;

printf ( “ enter 7 data \n ”) ;

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

scanf ( “ %d ”, &number[i] ) ;

max_min_value( number, 7 ) ;

printf ( “ \n max = %d , min = %d \n ”, max , min ) ;

}

2. 建立简单的同学通讯录,输入并存放10个同学的通讯信息,通讯录信息包括姓名、电话号码、电子邮箱。

#include

#define NUM 20

struct mem

{

char name[20];

char phone[10];

char addr[100];

};

void main()

{

struct mem man[NUM]

int i;

for(i=0;i

{

printf(“input name:\n”);

gets(man[i].name);

printf(“input phone:\n”);

gets(man[i].phone);

printf(“input address:\n”);

gets(man[i].addr);

}

printf(“name\t\tphone\n\n”);

for(i=0;i

printf(“%s\t\t%s\t\t%s\n”,man[i].name,man[i].phone, man[i].addr);

}

3、动态分配一块内存区域,输入并存放一个学生的数据,学生数据包括学号、姓名、性别和一门课的成绩。

#include

void main()

{

struct stu

{

int num;

char *name;

char sex;

float score;

}*ps;

ps=(struct stu *)malloc(sizeof(struct stu));

ps->num=101;

ps->name=“zhang ming”;

ps->sex=‘M’;

ps->score=85.5;

printf(“Number=%d\nName=%s\nSex=%c\nScore=%.1f\n”,ps->num,ps->name, ps->sex,ps->score);

free(ps);

}

C语言试卷2及答案

扬州大学试题纸 系课程 C语言程序设计(A)卷2002—2003学年第2学期 班级_________学号________姓名__________得分___________ 一、选择题(每题分,共30分): 1、已知:char a; int b; float c; double d; 则执行语句:c=a+b+c+d; 后,变量c的类型为。 A. char B. int C. float D. double 2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时, 从第一列开始输入数据12345 67<回车>,则y的值是。 A. 无定值 B. 345.00000 C. D. 3、设有以下程序段 int x=0; s=0; while (!x!=0) s+=++x; printf(“%d”,s); 则。 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 4、若i为整型变量,则以下循环执行次数是。 for(i=2; i==0;) printf(“%d”, i--); A. 无限次 B. 2次 C. 1次次 5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是 . A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++; 6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}; 则language[2]的值是。 A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 7、C语言程序中,当调用函数时。 A. 实参和虚参可以共用存储单元 B. 实参和虚参各占一个独立的存储单元 C. 可以由用户指定是否共用存储单元 D. 由计算机系统自动确定是否共用存储单元 8、在程序中要使用语句:printf(“%s\n”, STRING); 输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。 A. #define STRING “OK!” B. #define STRING “”OK!”” C. #define STRING \”OK!\” D.以上三个答案都是错误的 9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。 A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域 B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配 C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D. 数组的长度是固定的,链表的长度是不固定的。 10、已知语句FIL E *fp; char ch= ‘c’;fp=fopen(“”,”w”);如果需要将ch的值保存到一个磁盘文件中,

c语言习题及答案_爱课程mooc

第一章 题目内容: 使用printf()在屏幕上输出hello world! 提示: #include <> int main() { printf("hello world!\n"); return 0; } 输入格式: 无 输出格式: 输出提示信息:"hello world!\n" 输入样例: 输出样例: hello world! #include <> int main() { printf("hello world!\n"); return 0; } 在屏幕上输出多行信息(3分) 题目内容: 使用printf()函数在屏幕上输出以下多行信息: hello world! hello hit!

hello everyone! 提示: 在printf()函数中转义字符‘\n’表示换行。 输入格式: 输出格式: 输出提示信息: "hello world!\n" "hello hit!\n" "hello everyone!\n" 输入样例: 输出样例: hello world! hello hit! hello everyone! #include <> int main() { printf("hello world!\n"); printf("hello hit!\n"); printf("hello everyone!\n"); return 0; } 计算半圆弧的周长及半圆面积(3分) 题目内容: 编程并输出半径r=的半圆弧的周长及该半圆的面积,的取值为。要求半径r和必须利用宏常量表示。 输入格式: 无 输出格式: 半圆的面积输出格式:"Area=%f\n" 半圆弧的周长输出格式:"circumference=%f\n" 输入样例: 输出样例: Area=

c语言课堂练习题

1 如图所示,在真空中有一半径为a 的3/4圆弧形的 导线,其中通以稳恒电流I ,导线置于均匀外磁场B 中,且B 与导线所在平 面垂直.则该载流导线bc 所受的磁力大小为_________________. aIB 2 2.有一半径为a ,流过稳恒电流为I 的1/4 圆弧形载流导线bc ,按图示方式置于均 匀外磁场B 中,则该载流导线所受的安培力大小为_______________________. aIB I c a

3.通有电流I的长直导线在一平面内被弯成如图形状,放于垂直进入纸面的均匀磁场 B 中,求整个导线所受的安 培力(R 为已知). 解:长直导线AC 和BD 受 力大小相等,方向相反且在同一直线上,故合力为 零.现计算半圆部分受力,取电流元l I d , B l I F ?=d d 即 θd d IRB F = 由于对称性 0d =∑x F ∴ RIB IRB F F F y y 2d sin d 0 ====??π θθ 方向沿y 轴正向 ? ? B 1F

4.如图所示,载有电流I 1和I 2的长直导线ab 和cd 相互平 行,相距为3r ,今有载有电流I 3的导线MN = r ,水平放置, 且其两端MN 分别与I 1、I 2的 距离都是r ,ab 、cd 和MN 共面,求导线MN 所受的磁力大小和方向. 解:载流导线MN 上任一点处的磁感强度大小为: ) (21 0x r I B +π= μ)2(22 0x r I -π- μ MN 上电流元I 3d x 所受磁力: x B I F d d 3=) (2[ 1 03x r I I +π=μx x r I d ]) 2(21 0-π- μ ?-π- +π=r x x r I x r I I F 0 2 01 03d ]) 2(2) (2[ μμ -+π=?r x x r I I 013 0d [2μ]d 20 2 ?-r x x r I I I 2

C语言模拟试卷2(带答案)

,. 单选题: 1、执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A 2、设有以下定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+ (4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C 3、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c 4、请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) A. 5 B. 4 C. 8 D. 输出项不合法,无正常输出 答案: B 5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C 程序中的 else总是与____组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A 6、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是 A. 200 B. 100 C. 100 200 D. 输出格式符不够,输出不确定的值 答案: A 7、请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B 8、设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______ A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B 9、阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈3;i++) n[i]=0; k=2; for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈2;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D 10、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是() A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32); printf("摄氏温度是:%f\n",c); }

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言课后习题

习题第三章 #include <> #include <> int main() { int d,p; double r,a,m; scanf("%d %d %lf",&d,&p,&r); a=(p/(p-d*r)); # m=log(a)/log(1+r); if(p>0&&d>0) { if(d<=m*p) printf("%.1f",m); else printf("God"); } else printf(""); ) return 0; }

勾股数 #include <> int main() { int a,b,c,n; scanf("%d",&n); for(a=1;a<=n;a++) { { for(b=1;b<=n;b++) { for(c=1;c<=n;c++) { if(c*c==a*a+b*b) { if(a<=b) { printf("%d %d %d\n",a,b,c); 《 } } } }

} return 0; } 第四章 … 计算分段函数值 #include <> int main() { float x,y; scanf("%f",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else if(x>=10) y=3*x-11; printf("%.2f",y); ^ return 0; } 找出三个数中最大的数 #include <> int main() { int a,b,c,max;

scanf("%d%d%d",&a,&b,&c); max=a>ba:b; ! if(c>max) max=c; printf("%d",max); return 0; } 10844成绩等级评分 #include <> int main() { 。 int x; scanf("%d",&x); if(x>=0&&x<=100) { switch(x/10) { case 10: case 9: printf("A");break; case 8 : printf("B");break; case 7 : printf("C");break; …

C语言课后习题

习题 第三章 #include #include int main() { int d,p; double r,a,m; scanf("%d %d %lf",&d,&p,&r); a=(p/(p-d*r)); m=log(a)/log(1+r); if(p>0&&d>0) { if(d<=m*p) printf("%.1f",m); else printf("God"); } else printf("0.0"); return 0; } 勾股数 #include int main() { int a,b,c,n; scanf("%d",&n); for(a=1;a<=n;a++) { for(b=1;b<=n;b++) { for(c=1;c<=n;c++) { if(c*c==a*a+b*b) { if(a<=b) { printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 第四章 计算分段函数值 #include int main() { float x,y; scanf("%f",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else if(x>=10) y=3*x-11; printf("%.2f",y); return 0; } 找出三个数中最大的数 #include int main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; if(c>max) max=c; printf("%d",max); return 0; } 10844成绩等级评分 #include int main() { int x; scanf("%d",&x); if(x>=0&&x<=100) { switch(x/10) { case 10:

c语言试题及答案 (2)

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

C语言课堂练习习题集

1 《C 语言程序设计》自主学习检验题汇编 第一、二章 C 程序与算法 单项选择题 1. 将汇编语言编写的程序翻译成目标程序的程序是( ) A)解释 B)编译 C)汇编 D)目标 2. 不属于面向机器语言的是 ( ) A)符号语言 B)二进制语言 C)汇编语言 D)C 语言 3. 将高级语言编写的程序翻译成目标程序的程序是()。 A)解释 B)编译 C)汇编 D)二进制 4. 不属于高级语言的是()。 A)BASIC B)C C)ALGOL D)符号语言 5. 程序段的基本结构中,不包含()。 A)函数结构 B)循环结构 C)顺序结构 D)分支结构 6、C 语言源程序的最小单位是( )。 A 、程序行 B 、语句 C 、函数 D 、字符 7、以下说法正确的是( )。 A 、 在C 语言中,要调用的函数必须在main()函数中定义 B 、 C 语言程序总是从第一个定义的函数开始执行 C 、 C 语言程序中,main()函数必须放在程序的开始部分 D 、 C 语言程序总是从main()函数开始执行 8、以下对C 语言描述中正确的是( )。 A 、 C 语言源程序中可以有重名的函数 B 、 C 语言源程序中要求每行只能书写一条语句

2 C 、 C 语言源程序中,注释可以出现在任何位置 D 、 最小的C 源程序中没有任何内容 9、对C 语言源程序执行过程描述正确的是( )。 A 、 从main() 函数开始执行,到main()函数结束 B 、 从程序的第一个函数开始执行,到最后一个函数结束 C 、 从main 函数开始执行,到源程序的最后一个函数结束 D 、 从第一个函数开始执行,到main 函数结束。 填空题 1. 能完成某个任务的、有始有终的C 语言__ _称为C 程序。 2. 用来编写程序的计算机语言称为____。 3. 高级语言编写的程序称为____。 4. 用C 语言编写的源程序简称为“C 程序”,扩展名规定为“____”。 5. C 程序经过“编译”后将获得扩展名为“OBJ ”的____。 6. C 程序经过编译后获得的中间代码文件还需要经过____,才能成为可执行的“程序”, 目标程序的扩展名规定为"EXE"。 7、ANSI C 标准中共规定了 个关键字, 条控制语句。 8、一个执行的C 语言源程序至少应包含一个 。 9. 选择结构是____选择某个操作来执行的—种程序结构。 10. 选择结构可以分为____、双分支结构和多分支结构。 11. 循环结构又可分为当型循环、____及次数型循环。

二级C语言试题(含答案)

二级C语言试题 一、判断题(2×8=16分) 1、printf()函数总是从新行的起始位置开始打印。( F ) 2、所有的变量在使用前都必须予以申明。(F) 3、在申明变量时必须给出变量的类型。(T) 4、C语言认为变量number和NuMbEr是相同的。( F) 5、打印三行输出的C语言程序必须用三条printf语句。(F) 6、求余运算符%只能用于两个整数操作数。(T) 7、switch选择结构中必须有default子句。(F) 8、如果x>y或ay&&a

C语言习题课(附答案)

C语言习题课 一、单项选择题: 1.以下A是C语言中有效的变量名称。 A._abc B.2abc C.char D.a#3 变量名只能以下划线和字母开头 2.下面四个说法中错误的是B。 A.for循环不仅可以和for循环嵌套,而且可以和While循环嵌套。 B.当在循环体内执行continue语句的时候,将结束整个循环。 C.while循环最少循环0次,do-while循环最少循环1次。 D.goto语句也可以实现循环的功能。 3.在while ( x )中的x与下面条件表达式等价的是D A.x = = 0 B.x= = 1 C.x! = 1 D.x ! = 0 4.为表示关系x≥y≥z,应使用C语言表达式A A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z) 5.设有如下定义:int x=9,y=2,z;则语句printf(“%d\n”,z= x/y);的输出结果是C A.1 B. C.4 D.3 整形中的“/”是整除 6.若有以下语句:static char x[ ]=”12345”;static char y[ ]={‘1’,’2’,’3’,’4’,’5’};则正 确的说法是 B 。 A.x数组和y数组的长度相同 B.x数组的长度大于y数组的长度 C.x数组的长度小于y数组的长度 D.x数组与y数组等价

字符串后有一个“\0” 7.已知有定义:char ch;则下面正确的赋值语句为A。 A.ch='X' B.ch='55' C.ch="M" D.ch="55" 8.以下说法中正确的是C A.C语言程序总是从第一个的函数开始执行 B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 语言中,形参的缺省存储类型说明是: A 语言中的简单数据类型有: B A.整型实型逻辑型 B.整型实型字符型 C.整型字符型逻辑型 D.整型实型逻辑型字符型 11.以下程序段的输出结果是: C A.1 int x=3; B.3 0 do{ C.1 -2 printf("%3d",x-=2); D.死循环 }while(!(--x)); 12.以下非法的赋值语句是: A A.n=(i=2,++i); B.j++; C.++(i+1); D.x=y>0; 13.设a和b均为double型变量,且a=,b=,则表达式(int)a+b/b的值是: D A.B.6 C. D.

C语言试题及答案

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。

C语言例题及课后练习题汇总

1.在屏幕上显示一句话“欢迎学习C语言”。 2.求一个数的平方。 3.输入两个数,输出其中最大数。 4.编写一个C程序,输入三个整数,输出其中最大数。 5.编写一个C程序,从键盘上输入矩形的长和宽,屏幕上显示对应的矩形周长和面积。6. 编写一个C程序,输出9的阶乘的结果。 7.从键盘输入一个大写字母,输出其对应的小写字母。 8.用条件运算符实现:输入一个英文字母,如输入小写字母,输出其对应的大写形式,如输入大写字母,则原样输出。 9. 编程题:从键盘输入三个数a、b、c,输出平均值aver。 10. 计算工资税额。有一种工资纳税制度的规定为:如果工资超过50000元,缴纳的税额为工资总额的50%;如果工资超过10000元,纳税比例为工资总额的30%;如果工资超过7000元,纳税比例为工资总额的20%;如果工资超过5000元,纳税比例为工资总额的10%;如果工资少于等于5000元,不需纳税。设计一个程序,按照工资数额算出需要缴纳的税额。11.由键盘输入一个字符,判断是数字、英文字母还是其他字符。用if语句实现。 12. 由键盘输入一个成绩,然后输出相应的等级“优”、“良”、“中”、“及格”、“不及格”。 13. 从键盘输入1~7之间的数字,输出表示一个星期中对应的某一天的英文单词。 14. 计算器程序。用户输入运算数和四则运算符,输出计算结果。 15.输入两个数,判断两个数的关系是“大于”、“等于”或者“小于”,并输出结果。16.从键盘任意输入三个数,按照从小到大顺序输出。 17.编写程序判断输入的一个正整数是否既是5又是7的倍数。若是,则输出yes;若否,则输出no。 18. 用while循环输出1+2+…+100的结果。 19. 从键盘输入整数n,求1+2+…+n的结果并输出。 20. 求水仙花数。如果一个三位数的百位数、十位数和个位数的立方和等于这个数,那么这个数就被称为水仙花数。 21. 求2+4+…+100的结果并输出。 22. 用for循环输出1+2+…+100的结果。 23. 计算Fibonacci数列的前30项,并输出。 24. 求具有abcd=(ab+cd)2性质的四位数。比如:3025具有这样的性质,将它平分成两段30和25,然后加和取平方值,即 (30+25)2,恰好等于3025本身。请求出这种性质的全部四位数。 25. 编程题:求100+99+…+1的结果并输出。 26.编程题:从键盘输入一个值,统计1到这个数之间不能被3整除的数的个数,并输出这些数。 27. 从键盘输入一个数n,判断n是否是素数。 28. 统计1~50之间不能被3整除的数的个数并输出这些数字。 29. 输出下列图形。

C语言程序设计模拟试题2(附答案)

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是__17______。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() {

float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x

_k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是____6_____ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

C语言练习题 带详解答案

一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; printf("please input a,b:\n"); scanf("%d%d”,&a,&b); s=a*a+b*b; printf("the result is %d\n",s); return 0; } 2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。 #include #define PI 3.14 int main(void) { double r ,area , girth; printf("please input r:\n"); scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ;

printf("the area is %.2f\n", area); printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3、已知函数y=f(x),编程实现输入一个x值,输出y值。 2x+1 (x<0) y= 0 (x=0) 2x-1 (x>0) #include void main() { int x,y; scanf(“%d”,&x); if(x<0) y=2*x+1; else if(x>0) y=2*x-1; else y=0; printf(“%d”,y); } 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){

C语言模拟试卷及答案详解

2012―2013 学年第一学期 《C 语言程序设计》模拟试卷(B) 一、单项选择题(每题1分,共30分) 1.C 语言程序总是从______开始执行。 A) 第一条语句 B) 第一个函数 C) 主函数 D) 子程序 2.以下选项中正确的C 语言标识符是______。 A) a+b B) 3Dmax C) _25 D) %d 3.以下选项中正确表示字符型常量的是______。 A) '\t' B) "a" C) 'abc' D) '279' 4.以下选项中属于C 语言基本数据类型的是______。 A) 逻辑型 B) 双精度型 C) 复数型 D) 集合型 5.已知:int a=8,b=5,c;,则执行语句c=a%b+0.3;后,c 的值是______。 A) 1 B) 1.3 C) 3 D) 3.3 6.设在程序中的a ,b ,c 均被定义为整型并且已赋予大于1的值,能正确表示代数式abc 1的表达式 是______。 A)1/a*b*c B)1/(a*b*c) C)1/a/b/(float)c D)1.0/a/b/c 7.已知字符'A'的ASCII 码值为十进制数65,则执行语句printf("%c",'A'+2);后,输出结果是______。 A) A B) C C) 65 D) 67 8.已知:int i=1;,则执行语句printf("%d",i++);后,输出结果是______。 A) 1 B) 2 C) -1 D) -2 9.以下选项中,和语句x*=y+2;等价的是______。 A) x=x*y+2; B) y=x*(y+2); C) x=y+2*x; D) x=x*(y+2); 10.以下选项中能正确判断字符变量c 不是大写字母的表达式是______。 A) c<'A' && c>'Z' B) !(c<'A' && c>'Z') C) c>='A' || c<='Z' D) !(c>='A' && c<='Z') 11.已知:float a=7.0,b=2.5;,则表达式(int)a/(int)b 的值是______。 A) 2 B) 2.8 C) 3 D) 3.5 12.已知:int a,b,c;,若要给变量a 、b 、c 输入数据,以下正确的输入语句是______。 A) scanf ("%d,%d,%d",a,b,c); B) scanf ("%d,%d,%d",&a;&b;&c); C) scanf ("%d,%d,%d",&a&b&c); D) scanf ("%d,%d,%d",&a,&b,&c); 13.已知:int a=1,b=2;,则执行语句printf("%d",a>b?a:b);后,输出结果是______。 A) 0 B) 1 C) 2 D) 以上都不正确 14.以下选项中叙述正确的是______。 A) 在switch 语句中,不一定使用break 语句 B) break 语句必须与switch 语句中的case 配合使用 C) 在switch 语句中必须使用default D) break 语句只能用于switch 语句中 15.执行以下程序后,输出结果是______。 #include void main()

c语言习题及答案 爱课程mooc

第一章1.1 题目内容: 使用printf()在屏幕上输出hello world! 提示: #include int main() { printf("hello world!\n"); return 0; } 输入格式: 无 输出格式: 输出提示信息:"hello world!\n" 输入样例: 输出样例: hello world! #include int main() { printf("hello world!\n"); return 0; } 1.2 在屏幕上输出多行信息(3分) 题目内容: 使用printf()函数在屏幕上输出以下多行信息: hello world! hello hit!

hello everyone! 提示: 在printf()函数中转义字符‘\n’表示换行。 输入格式: 输出格式: 输出提示信息: "hello world!\n" "hello hit!\n" "hello everyone!\n" 输入样例: 输出样例: hello world! hello hit! hello everyone! #include int main() { printf("hello world!\n"); printf("hello hit!\n"); printf("hello everyone!\n"); return 0; } 1.3 计算半圆弧的周长及半圆面积(3分) 题目内容: 编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,的取值为3.14159。要求半径r和必须利用宏常量表示。 输入格式: 无 输出格式: 半圆的面积输出格式: "Area=%f\n" 半圆弧的周长输出格式: "circumference=%f\n" 输入样例: 输出样例: Area=44.123632

相关文档
最新文档