C程序设计2016作业

C程序设计2016作业
C程序设计2016作业

2016年春季学期《C语言程序设计》作业

作业提交格式要求:请同学们把答案集中单独写在一个.doc文档中,作为附件上传(不要把答案直接填写在题目的空中)。特规定格式如下:

一、ABCDD AAAAA

三、

(1) BeiJing

ShangHai

(2) x=8,y=7

(3) r=k:i+j=90

……

以上只是举例,不是正确的输出结果。请按上述规定书写和提交作业结果,不符合以上规定的作业将作为0分处理。

鼓励独立完成作业,严惩抄袭。

第一章作业

答案:一,59,14.4,28.e

二1小题,59

2,15

一、将数89、20.25、40.875用十六进制表示

二、填空

1.在C语言中,数值常量0x3b的十进制值是。

2.字母f的ASCII码为十进制数___________。

第三章作业

一、选择题:

1、下列变量名中, B 是非法的。

A) Tom B) 3n C) little_boy D) c10

2、若有以下类型说明

char a; int b; float c; double d;则表达式a*b+d-c的结果类型是(A )

A)float B)char C)int D)double

3、若x为整型,则逗号表达式(x=4*5,x*5),x+25的结果及x的值分别是(C )正确答案是100,45

A)45 20 B)125 20 C)125 45 D)100 100

4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)的值是 C 。

A) 5 B) 8 C) 6 D)7

5、已知c2为字符型,则执行语句c2=?E?+?8?-…A?后,c2的值为 C 。

A) 12 B) 11 C)不确定的值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型

A) int B) float C) double D) char

7、C语言中不可用作标识符的字符有( C )

A下划线

B %

C数字

D字母

8、下面四个选项中,均是合法整型常量的是(D )

A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5

9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型

A. int

B. float

C. double

D. char

10.若a是int型变量,则表达式(a=4*5,a*2),a+4的值为( C )

A. 20

B.22

C. 24

D. 44

第四章作业

一、选择题

1、若x为int型变量,则执行以下语句后x= C 。

x=5;

x-=x-=x+x;

A. -10

B. -5

C.0

D.10

2、在printf()函数的格式说明符中,字符型数的输出格式说明符是 D 。

A. %s

B. %f

C. %ld

D. %c

3、已知ch是字符型变量,下面不正确的赋值语句是 C 。

A) ch=?7?+?9?; B) ch=?\0?; C) ch=?x+y?; D) ch=5+9;

4、要使用putchar()函数必须在程序前加语句 A 。

A. #include

B. include

C. include "stdio.h"

D. #include 'stdio.h'

5、在scanf()函数的格式说明符中,长整型数的输入格式符是 B 。

A. %lf

B. %ld

C. %f

D. %x

二、判断题

1、C语言标准输入操作中,gets()函数一次只可以读取一个字符。(Flase )

2、C语言标准输出操作中,putchar()函数可以输出显示一个字符串。(Flase )

3、"a"与'a'是不同的; ( True )

三、分析下列程序的输出结果。

1.

#include

void main()

{

char c=?m?;

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

printf(“%d,%c\n”,?c?,?c?);

}

分别是,m,109

99,c

2.

#include

void main()

{

int a;

float d;

printf(“Enter a and d: ”);

scanf(“%d%f”,&a,&d);

printf(“%5d,%8.2f\n”,a,d);

}

Enter a and d: 70 80.158 ↙

输入结果,Enter a and d:

70 ,80.16

第五章作业

一、选择题。

1、逻辑运算符两侧的运算对象的数据(D)

A)只能是0和1

B)只能是0或非0正数

C)只能是整型或字符型数据

D)可以是任何类型的数据

2、判断char型变量ch是否为大写字母的正确表达式是 C 。

A. …A?<=ch<=?Z?

B. (ch>=?A?) && (ch<=?Z?)

C. (ch>=?A?)& (ch<=?Z?)

D. (…A?<=ch) AND (…Z?>=ch)

3、执行以下程序段后,b= A 。

int a=5,b=6,c=1,x=2,y=3,z=4;

c=(a=c>x)&&(b=y>z);

A. 6

B. 0

C. 1

D.4

4、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。

if (x>y)

z=x;x=y;y=z;

A. x=20,y=30,z=30

B. x=10,y=20,z=30

C. x=20,y=30,z=10

D. x=20,y=30,z=20

5、设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2 的值为( B )

A. 0

B. 1

C. 4

D. 6.5

二、填空题。

1、以下程序

main()

{

int x1=3,x2=0,x3=0;

if(x1=x2+x3) printf(“****”);

else printf(“####”);

}

输出#### 。

2、10 != 2 + 8 || 5 < 4 && 3 > 9/4的结果是FALSE(0)。

3、设x为int型变量,表示某一年份,请写出描述“x是闰年”的表达式

x%4==0&&x%100!=0)||x%400==0

4、整型变量y能被3整除但不能被 4 整除。

三、程序填空题。请在【】中填上正确内容。

1、该程序实现输出x,y,z三个数中的最大者。

main()

{int x=4,y=6,z=7;

int 【1】;

if (【2】) m=x;

else m=y;

if (【3】) n=m;

else n=z;

printf(“n=%d”,n);

}

答案:m x>y n>m

2、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变;

main()

{ char ch;

scanf(“%c”,&ch);

if (【1】) ch=ch+32;

else if (ch>=?a? && ch<=?z? ) 【2】;

printf(“%c”,ch);

}

答案: (ch>=’A’)&&( ch<=’Z’) ch=ch-32

第六章作业

一选择题。

1、设有程序段

int x=10;

while(x=0) x=x-1;

则下面描述正确的是(C )。

A)while循环执行10次B)循环是无限循环

C)循环体一次也不执行D)循环体只执行一次

2、对for(表达式1;;表达式3)可理解为 C 。

A. for(表达式1;0 ;表达式3)

B. for(表达式1;表达式1;表达式3)

C. for(表达式1;1 ;表达式3)

D. for(表达式1;表达式3;表达式3)

3、语句while(!y);中表达式!y等价于(A )

A)y= =0 B)y!=1 C)y!=0 D)y= =1

4.下述关于break语句的描述中,( C )是不正确的。

A. break语句可用于循环体内,它将退出该重循环;

B. break语句可用于开关语句中,它将退出开关语句;

C. break语句可用于if体内,它将退出if语句;

D. break语句在一个循环体内可以出现多次;

5.执行以下程序时,从键盘输入2473↙(↙表示回车),则下面的程序的运行结果是( C )

#include

main( )

{ int c ;

while((c=getchar( ))!= ?\n?)

switch(c-'2')

{ case 0:

case 1: putchar(c+4);

case 2: putchar(c+4);break;

case 3: putchar(c+3);

default: putchar(c+2);break;

}

}

A. 668966

B. 6688766

C. 668977

D. 66778777

二判断题

1、While循环语句的循环体至少执行一次。( false )

2、任何循环语句的循环体至少都可执行一次。( false )

3、break语句可以出现在各种不同循环语句的循环体中。( true)

4、for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。(false )

5、条件语句是可以实现多路分支的。(true )

三填空题

1.已知for(j=1,s=0;j<=5;j+=2) s=s+j;执行循环后,s的值是 9 _ 。

2.执行以下程序段后,y= 8 _ ,x= 2 _ 。

int x=1,y=10;

do{

y-=x;

x++;

}while(y--<0);

四程序填空题

1下面程序段的功能是将字符串s中所有的字符c删除,请填空.

main()

{

char s[80];

int I,j;

gets(a);

for(i=0,j=0;s[i]!=?\0?;i++)

if(s[i]!=?c?) (【1】) ;

s[j]=?\0?;

puts(s);

}

答案:else

第七章作业

一、选择题

1、以下能对二维数组正确初始化的是(D )

A)int y[2][ ]={{1,0,1},{5,2,3}}

B)i nt y[ ][3]= {{1,0,1},{5,2,3}}

C)i nt y[2 ][4]= {{1,0,1},{5,2},{3}}

D)int y[ ][3]= {{1,0,1,0},{ },{5,2}}

2、若二维数组y有m列,则在y[i][j]前的元素个数为(B )

A j*m+I

B i*m+j

C i*m+j-1

D i*m+j+1

3、已知int w[2][4]={7,15,8,9,20,25,14,17};则w[0][1]的值是C(15)

A 8 B.9 C. 15 D. 25

4、若有说明int a[][3]={1,2,3,4,5,6,7, 8};则a数组第一维的大小是 A 。

A. 2 B无确定值 C. 3 D. 4

5、若有说明int a[][4]={{1, 2, 3}, {4, 5}, {}};则a数组第一维的大小是 D 。

A. 2 B无确定值 C. 3 D. 语法错误

6、下面程序的运行结果是。

char c[6]={…a?,?b?,?c?, ?\0?,?c?,?\0?}; 答案是abc (B)

printf(“%s”,c);

A. …a??b?

B. abc

C. ab c

D. ab

7、判断字符串a和b是否相等,应当使用 D 。

A. if (a= =b)

B. if (a=b)

C. if (strcpy(a,b))

D. if (strcmp(a,b))

8、用数组名作为实参,传给形参的是( D )

A.数组第0个元素的值

B.数组全部元素的值

C.数组元素个数

D.数组首地址

9、以下能正确读入字符串的是( D )

A.char *p;scanf(“%s”,p);

B.char str[10]; scanf(“%s”,&str);

C.char str[10],*p;p=str; scanf(“%s”,p);

D.char str[10],*p=str; scanf(“%s”,p[1]);

10、已知char c[6]="ABCDE", d[6];要将c复制到d中,正确的做法是( D )

A. d=c;

B. c=d;

C. strcmp(c,d);

D. strcpy(d,c);

二、分析下面程序的结果。

main ( )

{ int i,j,s1=0,s2=0 ,a[3][3]={ 4,9,6,5,3,1,2,8,7};

printf("a:\n");

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

{ for(j=0;j<3;j++) printf("%3d",a[i][j]);

printf("\n");

}

printf("\n");

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

{ s1=s1+a[i][i];

s2+=a[i][2-i];

}

printf("s1=%d, s2=%d\n",s1,s2);

}

答案:

a:

4 9 6

5 3 1

2 8 7

S1=14,s2=11

第八章作业

一、选择题

1. 在C语言中,当函数调用时( D )。

A. 实参和形参各占一个独立的存储单元

B. 实参和形参共用存储单元

C. 可以由用户指定实参和形参是否共用存储单元

D. 由系统自动确定实参和形参是否共用存储单元

2. 以下函数调用语句中实参的个数为( A )。

exce((v1,v2),(v3,v4,v5),v6);

A. 3

B. 4

C. 5

D. 6

3.如果在一个函数的复合语句中定义了一个变量,则该变量( A )。

A. 只在该符合语句中有效,在该符合语句外无效

B. 在该函数中任何位置都有效

C. 在本程序的原文件范围内均有效

D. 此定义方法错误,其变量为非法变量

4. C语言规定,函数返回值的类型是由( D )。

A. return语句中的表达式类型所决定

B. 调用该函数时的主调函数类型所决定

C. 调用该函数时系统临时决定

D. 在定义该函数时所指定的函数类型决定

5.在C语言程序中,以下描述正确的是( D )。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套

B. 函数的定义不可以嵌套,但函数的调用可以嵌套

C. 函数的定义和函数的调用均不可以嵌套

D. 函数的定义和函数的调用均可以嵌套

二、写出程序的输出结果

1.

void main(void)

{

int a=1,k;

for(k=0;k<3;k++) printf("%4d",f1(a));

}

int f1(int x)

{

static int z=3,y=0;

y++;

z++;

return(x+y+z);

}

答案:***6***8***10

第十章作业

一、选择题。

1.若有以下定义和语句,且0≤i<10则对数组元素的错误引用是( B )。

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

p=a;

A. *(a+i)

B. a[p-a]

C. p+i

D. *(&a[i])

2.若有定义:int a[3][4]; ,( D )不能表示数组元素a[1][1]。

A. *(a[1]+1)

B. *(&a[1][1])

C. (*(a+1) ) [1]

D. *(a+5)

3.对如下定义,以下说法中正确的是( D )。

char *a[2]={ "abcd","ABCD"};

A.数组a的元素值分别为"abcd"和"ABCD"

B.a是指针变量,它指向含有两个数组元素的字符型数组

C.数组a的两个元素分别存放的是含有4个字符的一维数组的首地址

D.数组a的两个元素中各自存放了字符?a?、?A?的地址

4.char *s="\t\\Name\\Address\n";指针s所指字符串的长度为:( D )。

A. 说明不合法

B. 19

C. 18

D. 15

5.分析下面函数,以下说法正确的是( D )。

swap(int *p1,int *p2)

{ int *p;

*p=*p1; *p1=*p2; *p2=*p;

}

A. 交换*p1和*p2的值

B. 正确,但无法改变*p1和*p2的值

C. 交换*p1和*p2的地址

D. 可能造成系统故障,因为使用了空指针

6.设有说明int (*ptr)[M]; 其中ptr是( C )。

A. M个指向整型变量的指针

B. 指向M个整型变量的函数指针

C. 一个指向具有M个整型元素的一维数组的指针

D. 具有M个指针元素的一维指针数组,每个元素都只能指向整型量

7.在说明语句:int *f(); 中,标识符代表的是:( D )。

A. 一个用于指向整型数据的指针变量

B. 一个用于指向一维数组的指针

C. 一个用于指向函数的指针变量

D. 一个返回值为指针型的函数名

8.若int x ,*pb;,则正确的赋值表达式是( A )。

A. pb=&x

B. pb=x;

C. *pb=&x;

D. *pb=*x

9.有如下程序段

int *p ,a=10 ,b=1 ;

p=&a ;a=*p+b ;

执行该程序段后,a 的值为( B )。

A. 12

B. 11

C. 10

D. 编译出错

二、填空题。

1、单目运算符&后跟变量名,表示是该变量的地址,单目运算符*后跟指针名,

表示该指针的指向该指针的地址。

2、指针用来存放某个变量的地址。

3、已知:char *c=”good”;则printf(“%s\n”,c)输出为good ,printf(“%s\n”,c+1)

输出为ood 。

4、若有定义:int a[10],*p=a;则*(p+5)表示 a[5] 的值。

5、若有定义:int* p;则*p表示_________地址_____ 。

三、程序填空题

下面程序的功能是将八进制正整数组成的字符串转换成十进制整数,请填空。

#include "stdio.h"

main()

{

char *p,s[6];

int n;

p=s;

gets(p);

n= 【1】 ;

while( 【2】 !='\0')

n=n*8+*p-'0';

printf("%d\n",n);

}

答案:*p-’0’*’p’

最新C语言程序设计100个经典例子

C语言程序设计100个经典例子

经典C语言程序设计100例 1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数 37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出 41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法

45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 & 52.学习使用按位或 | 53.学习使用按位异或 ^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求 1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序 80.海滩猴子分桃 81.已知公式条件求数字82.八进制转换为十进制83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数 85.判断一个素数能被几个9整除86.两个字符串连接程序87.结构体变量传递88.读取数字的整数值并打印出该值个数的* 89.数据加密90.专升本一题91.时间函数举例1 92.时间函数举例2

《C程序设计》作业内容

实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include int main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); return 0; } (2)将输入的程序以文件名example.c存盘。 (3)编译:通过“组建”(Build) 下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。 (4)连接:通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。 (5)运行:通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。 【例2】编写程序,将两个整数相加,并输出结果。 #include int main() { int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); return 0;}

C语言程序设计大作业报告模板

《C语言程序设计》大作业报告 1.目的 掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 2.作业内容

熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用等。 3.要求: 1.要求每个同学都要认真对待,积极参与。 2.独立完成,不能抄袭。 3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源 代码和设计思路。 4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设 计中完全未参与的将作不及格处理。 5.统一格式,A4打印,按时提交。 4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。要求在main函数里面读数,在change函数里面把矩阵转置。 5.程序设计 设计思路:1是先定义两个数组,一个是a[3][4],另一个是b[4][3]。2是将随便输入的12个数输入到a[3][4]。3是在change函数中将a[3][4]中值通过for循环的镶嵌将数组a[3][4]的值赋值给数组b[4][3]。4在主函数中将数组b[4][3]通过for循环的嵌套输出。 代码

C语言程序设计作业参考答案

《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB

作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

C程序设计作业样本

第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。

C语言课程设计大作业62994

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: 20127611*** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。使之能提供以下基本功能: (1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入 (2)通讯录信息的浏览功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): ①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等 扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。 总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。 成绩评定教师:

一. 需求分析 1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能:

C语言程序设计_第二阶段练习参考答案

江南大学现代远程教育第二阶段 练习题 考试科目 : 《 C 语言程序设计》 第七 章至第九章 学习中心(教学点) 批次: 专业: 学号: 姓名: 、单项选择题 (本题共 20 小题,每小题 2分,共 40 分。 1、有以下程序 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i];i++;} printf("%d\n",k); } 执行后输出结果是( 静态( static )类别变量的生存期贯穿于整个程序的运行期间 函数的形参都属于全局变量 #define N main() { int i; 4、有如下程序 voi d f(int x,int y) 总分 100 分) 层次: 身份证号: 得分: A 、 58 B 、 56 、45 、24 2、 )。 A 、 以下叙述中正确的是( 全局变量的作用域一定比局部变量的作用)。 B 、 D 、 未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值 3、 程序如下: #define M1 N*3 #define M2 N*2 i=M1+M2; printf( “%d n ”,i); } 程序编译后运行的输出结 果是( )。 A 、 10 B 、20 C 、25 D 、 30

{ int t; if(x

C语言编程实例100题

C语言程序实例100个(一) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++) for(k=1;k<5;k++) { if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k); } } ==================================================== ========== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000)

c程序设计作业

1、分析下面程序: # include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n"c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? (3)如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 答:(1)程序运行不了,因为程序存在错误。正确的程序为:#include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出: (3)如果将程序第3行改为 int c1,c2; 运行时会输出:

因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include int main() { int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&a,&y); scanf("%c%c",&c1,&c2); return 0; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

C语言程序设计作业2答案

第2次作业答案 一、单项选择题答案 1B 2B 3D 4C 5B 6B 7D 8D 9B 10C 11C 12B 13A 14C 15B 16B 17D 18A 19D 20B 一.单项选择题 1.若有以下定义:int a[]={3, 4, 5, 6, 7, 8, 9, 10, 11}, *p=a; 则值为5的表达式是()。 A)p+=5, *(p+1) B)p+=1, * ++p C)p+=4, *p++ D)p+=1, ++ *p 2.下面函数调用语句含有实参的个数为() fun( ( a, b, c, d ), ( m, n ), (f, g ) ); A)1 B)3 C)4 D)2 3.函数形式正确的是()。 A) double myfun( int x, int y) B) int myfun( int x, y) { m=x+y; return m; } { int m; } C) int myfun( int x, int y) D) int myfun( int x, int y) { int x, y; double m; { int m; m=x+y; return m; } m=x+y; return m; } 4.不正确的字符串赋值或赋初值方式是()。 A)char *str; str=”string”; B)char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’} C) char str[10]; str=”string”; D)char str[]=”string”; str2[]=””; strcpy(str2, str1); 5.以下程序的输出结果是()。 #include main() { char str[]="SSSWLIA", c; int k; for (k=2; (c=str[k])!='\0'; k++) { switch (c) { case 'I': ++k; break; case 'L': continue; default: putchar(c); continue; } } putchar('*'); } A)SSW* B)SW* C)SW*A D)SW 6.以下程序的输出结果是()。 #include int w=3; fun( int k) { if ( k==0) return w; return ( fun(k -1 )*k); }

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

C语言程序设计个经典例子

C语言程序设计个经典 例子 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

经典C语言程序设计100例1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题 23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色 33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数 37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序 40.将一个数组逆序输出

41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法 45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 & 52.学习使用按位或 | 53.学习使用按位异或 ^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形 59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度 71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序 80.海滩猴子分桃 81.已知公式条件求数字 82.八进制转换为十进制 83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

C多线程编程实例实战

C多线程编程实例实战Prepared on 21 November 2021

C#多线程编程实例实战 问题的提出 所谓单个写入程序/多个阅读程序的线程同步问题,是指任意数量的线程访问共享资源时,写入程序(线程)需要修改共享资源,而阅读程序(线程)需要读取数据。在这个同步问题中,很容易得到下面二个要求: 1)当一个线程正在写入数据时,其他线程不能写,也不能读。 2)当一个线程正在读入数据时,其他线程不能写,但能够读。 在数据库应用程序环境中经常遇到这样的问题。比如说,有n个最终用户,他们都要同时访问同一个数据库。其中有m个用户要将数据存入数据库,n-m个用户要读取数据库中的记录。 很显然,在这个环境中,我们不能让两个或两个以上的用户同时更新同一条记录,如果两个或两个以上的用户都试图同时修改同一记录,那么该记录中的信息就会被破坏。 我们也不让一个用户更新数据库记录的同时,让另一用户读取记录的内容。因为读取的记录很有可能同时包含了更新和没有更新的信息,也就是说这条记录是无效的记录。 实现分析 规定任一线程要对资源进行写或读操作前必须申请锁。根据操作的不同,分为阅读锁和写入锁,操作完成之后应释放相应的锁。将单个写入程序/多个阅读程序的要求改变一下,可以得到如下的形式: 一个线程申请阅读锁的成功条件是:当前没有活动的写入线程。 一个线程申请写入锁的成功条件是:当前没有任何活动(对锁而言)的线程。 因此,为了标志是否有活动的线程,以及是写入还是阅读线程,引入一个变量m_nActive,如果m_nActive > 0,则表示当前活动阅读线程的数目,如果m_nActive=0,则表示没有任何活动线程,m_nActive <0,表示当前有写入线程在活动,注意m_nActive<0,时只能取-1的值,因为只允许有一个写入线程活动。 为了判断当前活动线程拥有的锁的类型,我们采用了线程局部存储技术(请参阅其它参考书籍),将线程与特殊标志位关联起来。 申请阅读锁的函数原型为:public void AcquireReaderLock( int millisecondsTimeout ),其中的参数为线程等待调度的时间。函数定义如下:public void AcquireReaderLock( int millisecondsTimeout ) { et FrameSDK中的一个例子,只是稍做修改。测试程序如下, using System; using ; using MyThreading; class Resource { myReaderWriterLock rwl = new myReaderWriterLock(); public void Read(Int32 threadNum) { ; try {

C语言大作业学生信息管理系统

《程序设计综合课程设计》报告 学生姓名: ______ ______ ______ ______________________ 学生班级: ______________________ ____________ ____________ 学生学号: ____________ 指导教师: ______ 2014年6 月 22 日

目录 前言 (2) 第1章Visual C++6.0简介及其优点 (3) 第2章课程设计的目的和要求 (4) (4) 2.2课程设计的要求 (5) 第3章课程设计任务内容 (6) 3.1 需求分析 (6) 3.2可行性分析 (6) 第4章软件使用说明 (7) 第5章总结 .................................................. 错误!未指定书签。附录源程序 学生信息管理系统 前言 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项 数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等 院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。 其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人 工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院 校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的 管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力 和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入 人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以 计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟 的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要 条件,更是各个高等院校与世界接轨的重要条件。

相关文档
最新文档