[东北农业大学]网院18秋《计算机程序设计(c语言)》离线作业-w66利来

[东北农业大学]网院18秋《计算机程序设计(c语言)》离线作业

op5n 2018-11-18 2146

东北农业大学网络教育学院
c语言专升本作业题
作业题(一)
一、填空
1. c语言中任何程序的运行总是从主函数开始,在 函数中结束。
2.x=2,y=-3,z=3,则表达式x||y z&&y-z的值为 。
3.系统判断字符串结束的标志是 。
4.能正确表示“当ch为小写字母为真,否则为假”的表达式是 。
5.c语言中while和do-while循环的主要区别是 的循环体至少无条件执行一次。
6.说明char s1[]=“china”,s2[10];要将s1的值复制到s2中的正确语句是 。
7.若用数组名作为函数调用的实参,则传递给形参的是 。
8.在c语言中实型变量分为两种类型,它们是 和 。
9.十进制11转化为八进制的值为 。
二、单项选择题
1.?_____是不正确的字符常量。
(a)'n' (b)'1' (c)"a" (d)'/101'
2.?以下程序的输出结果是
main( )
{ int i;for(i='a';i<'i';i ,i )
printf("%c",i 32);printf(" \n");}
(a) 编译不通过,无输出 (b) aceg
(c) acegi (d) abcdefghi
3、 执行以下程序后,输出的结果是
main ()
{ int y=10;do { y - -;} while(- - y);
printf("%d\n",y --);}
(a) -1 (b) 1 (c) 8 (d) 0
4. ______把x、y定义成float类型变量,并赋同一初值3.14。
(a)float x, y=3.14; (b)float x, y=2*3.14;
(c)float x=3.14, y=x=3.14; (d)float x=y=3.14;
5. 说明: int a[3][4]; 则对a数组元素的正确引用是( )。
(a)a[2][4] (b) a[1,3 ] (c) a[1 1][0] (d) a(2)(1)
6.若变量已正确定义,语句“if(a>b) k=0; else k=1;”和______等价。
(a)k=(a>b)?1:0; (b)k=a>b;
(c)k=a<=b; (d)a<=b ? 0 : 1;
7.?设变量定义为“int a, b;”,执行下列语句时,输入_____,则a和b的值都是10。
scanf("a=%d, b=%d",&a, &b);
(a)10 10 (b)10, 10 (c)a=10 b=10 (d)a=10, b=10
8?若t为int类型,表达式t=1,t 5,t 的值是_____。
(a)1 (b)6 (c)2 (d)1
9.在c程序中,若对函数类型未加说明,则函数的隐含类型为_____。
(a)int (b)double (c)void (d)char
10.???? 若有以下定义和语句: int?u=010,v=0x10,w=10; printf(″%d,%d,%d\n″,u,v,w); 则输出结果是___ __。
(a)8,16,10 (b)10,10,10 (c)8,8,10 (d) 8,10,10 三、阅读程序,写出程序运行结果
1.main()
{int i=1;
while(i<=10)
if( i%2!=0) continue;
else printf(“=”,i);
}
2.main( )
{ int i,j,k;
char space=‘ ’;
for(i=1;i<=3; i )
{ for(j=1;j<=10-i;j )
printf(“%c”, space);
for(k=1;k<=2*i; k )
printf(“*”);
printf(“\n”); }
}
main()
{int i,j,sum=0,a[3][3];
for(i=0;i<3;i )
for(j=0;j<3;j )
{a[j]=i j;
if(i==j) sum =a[j]; }
printf(“%d”,sum);
}
4.int x,y
num()
{int x,y;
int a=10,b=5;
x=a b;y=a-b;
}
main()
{int a=8,b=3;
x=a-b;y=a b;
num();
printf("%d,%d",x,y)
}
5. main( )
{ int i, j=4 ;
for(i=j; i<=2*j; i )
switch (i/j)
{ case 0 :
case 1: printf(“*”); break ;
case 2: printf(“#”,a);
}
} 四、程序填空
阅读程序说明及程序,把它补充成一个完整的程序
1.下面程序是用冒泡法对10个数进行从小到大排序的程序。
main( )
{ int ,i,j,temp;
printf("请输入10个整数:\n");
for(i=0;i<10;i )
scanf("%d", );
for(i=1;i<10;i )
for(j=0; ;j )
if(a[j] a[j 1])
{ temp=a[j]; ; a[j 1]=temp;}
printf("\n排好序的10个整数为:\n");
for(i=0;i<10;i )
printf("]",a);
}
五、编写程序
1. 从键盘输入20个整型数,统计其中负数个数并求所有正数的平均值。
2. 编写程序,输入一个字符串,计算出这个字符串的长度(要求不能使用strlen函数)3. 编写程序,在主函数中输入10个数,在函数invert中将10个数按反序存放,并在主函数中输出结果。
作业题(二)
填空题
一个c语言程序总是从( )函数开始执行。
十进制数159转换为八进制数是( )。
已知int x=6; 表达式x%2 (x 1)%2的值是( )。
c语言中char型变量在内存中占( ) 个字节的内存单元
c语言的变量名:tea与tea是( )同的。
在屏幕上输出整型变量a,b值,每个数占5位,输出数据前有说明字符的 printf()函数为( )。
设x的值为15,n的值为2,则表达式x%=(n =3)运算后,x的值为(  )。
表达式( 5<3) && (2 || 8<4 ) 的值是( )。
a数组定义如下 char a[3];,按照内存排列顺序,a数组中的所有元素是( )。
已知 int a[]={0,1,2,3,4,5}; 它的最大下标是( )。
(二)单项选择题
1.在c程序中所用的变量使用前( )
(a)可以不定义 (b)先定义后使用 (c)随时定义随时用 (d) 其他
2.以下正确的字符常量是( )
(a)“x” (b) ‘w’ (c)‘’ (d)‘xyz’
3.在c语言的算术运算符中只能用于整型数的运算符是( )
(a) (b)/ (c) % (d)*
4.设有程序段int k=10; while (k=0) k=k-1;则下面描述中正确的是( )
(a)循环执行十次 (b)循环是无限循环
(c)循环体语句一次也不执行 (d)循环体语句执行一次
5.已知 int a; 那么 &a表示( )
(a)变量名 (b)变量a的地址 (c)变量a的值 (d)其他
6.设x、y均为整型变量,且x=10 ,y=3,则以下语句的输出结果是( ) printf("%d,%d\n",x--,--y); (a) 10,3 (b) 9,3 (c) 9,2 (d)10,2
7.阅读以下程序,当输入数据的形式为:25,13,10<回车>,正确的输出结果是( )
main()
{int x,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x y z=%d\n”,x y z);
}
(a)x y z=48 (b)x y z=35 (c)x z=35 (d)不确定值
8.已知:int i; for(i=0; i<=10;i );如果表达式1即i=0缺省那么完成表达式1功能的语句可以( )
(a)放在for语句的前面 (b)放在循环体中
(c)放在for语句的后面 (d)放在程序的任何地方
9.以下可以正确计算s=1*2*3*4*5的程序段是( )
(a)for(i=1;i<=5;i ) (b) for(i=1;i<=5;i )
{ s=1; { s=0;
s=s*i;} s=s*i;}
(c)s=1; (d) s=0;
for(i=1;i<=5;i ) for(i=1;i<=5;i )
s=s*i; s=s*i;
10.以下数组定义中不正确的是( ) (a) int a[2][3]; (b) int b[ ][3]={0,1,2,3}; (c) int c[100][100]={0}; (d) int d[3][ ]={{1,2},{1,2,3},{1,2,3,4}};
(三)写出程序运行结果
1.main()
{ int a=1,b=2;
a=a b;b=a-b;a=a-b;
printf("%d,%d \n",a,b);
} 2. main()
{ int x=10, y=6, i=0;
for(i=y; i<= x ; i ) printf(“i=%d\n”,i);} 3. main()
{ int x=0,y=0;
do
{ y ;
x=x*x;
}while((x>0)&&(y>5));
printf(“x=%d y=%d\n”, x, y);}

4. main()
{ int a[]={1,3,5,2,7};
int b[]={5,3,9,4,6};
int c[5], i;
for(i=0; i<5; i )
{c=a*b;
printf(“%d ”, c);
}
}
5. 若x=2,y=3,z=2,求下列表达式的值
x﹤y?y:z
x﹥y? ( x):( z)
(四)程序填空
下面程序将按如下形式输出杨辉三角形。






1















1



1











1



2



1







1



3



3



1



1



4



6



4



1

#define n 5
main()
{int i,j,a[n][n];char space=’ ’;
for(i=0;i { =1; =1;}
for(i=2;i for(j=1; ;j )
a[j]= a[i-1][j];
for(i=0;i { for(j=0;j<4-i;j )
printf(“%c ”,space);
for(j=0; ;j )
printf("m",a[j]);
printf("\n");}
}
}
(五)编写程序题
编写一个函数,重复打印给定的字符n次编一程序,输入10个数,并求出它们的和编一程序,显示如下图案

**
***
****
***** 
作业题(三)
一 填空题
1c语言源程序的扩展名为( )。
2设char c=’a’,则语句printf(″%c″,c 32)结果为( ) 。
3十六进制数2a转换为十进制数是( )。
4计算 x 、 y 之和的平方,表达式应写作 ( ) 。
5执行语句“ a=5 (c=6); ”后,变量 a 、 c 的值依次为( ) 。
6设y是int型变量,请写出判断y为5的倍数的关系表达式( ) 。
7通过键盘输入整型变量a的scanf()函数为( )。
8设x是个实型变量。满足数学式|x|>4的c语言表达式是( )。
9若s 是整型变量,则计算表达式 s=22/3%2 后s的值为( ) 。
10已知 int a[5];内存开辟有( )个存储单元。 二 单项选择题
1. 不正确的标识符是(   )
(a)_a2 (b)2ai (c)a2_i (d)int
2.定义一个有 4 个元素的一维整型数组,正确的是(   )
(a) float a[4] ; (b) int a[]={1,2,3,4,5} ; (c) int a[]={1,2,3} ; (d) int a[4]={1}
3.以下叙述正确的是(? )。 ? (a)do-while语句构成的循环不能用其他语句构成的循环来代替 ? (b)do-while语句构成的循环只能用break语句退出 ? (c)do-while语句构成的循环,在while后的表达式为非零时结束循环 ? (d)do-while语句构成的循环,在while后的表达式为零时结束循环
4.已知 int a=5,y; y=a ; 问a,y=? ( )
(a)a=6 , y=5 (b)a=6 , y=6
(c)a=6 , y=7 (d)a=5 , y=6
5.已知 int a =5; 赋值表达式a =a*a的值为( )
(a)5; (b)10; (c)30; (d)50;
6.已知 int a=2,b=5; 则表达式a 5>b 3的值是( )
(a)0 (b)1 (c)不确定 ( d)表达式错误
7.已知整型变量k的值为3,下面程序段执行的结果是( )
switch(k)
{ case 1:putchar(‘a’);break;
case 2:putchar(‘b’);break;
case 3:putchar(‘c’);
case 4:putchar(‘d’);
default:putchar(‘e’);
}
(a) cde (b) c (c) abc (d) abcd
8.以下程序段输出的结果是( )
a=-1;
do
{ a=a*a;}while(a<0);
(a) 循环一次 (b) 循环两次 (c) 死循环 (d) 有语法错误
9.以下对数组的初始化正确的是( )
(a)int x[5]={0,1,2,3,4,5}; (b)int x[]={0,1,2,3,4,5};
(c)int x[5]={5*0}; (d)int x[]=(0,1,2,3,4,5);
10.当调用函数时,实参是一个数组名,则向函数传送的是( ).
(a) 数组的长度 (b) 数组的首地址
(c)数组每一个元素的地址 (d)数组每个元素中的值
三 写出程序运行结果
1.main()
{ int x=7,a=2,b=2,c;
c=x/a%b;
printf(c=%d\n”,c);}
2.main()
{ int x=2,y=3,z;
z=x;
if(x>y) z=1;
else if(x==y) z=0;
else z=-1;
printf(“z=%d\n”,z);}
3. main()
{ int a[]={1,2,3,4,5,6,7,8,9,10}, s=0, i;
for(i=0; i<10; i )
if(a%2==0) s=s a;
printf(“s=%d”, s);}
4. main()
{ int a=10,b=5,x;
x=a printf(“x=%d\n”,x);}
5.main()
{ int n=2345,k=0;
while(n>1)
{
k ;
n= n/10 ;
}
printf(“%d\n”,k);
}
四 程序填空
所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数。例如编写程序,求得并输出全部水仙花数的个数。请填空完善程序。 ? #include ? main() ? { ???? int hun,ten,one;?? /*百位数、十位数、个位数*/ ???? int num,count=0; ???? for (num=100;_____(1)_____;num ) ???? { ?????? hum=________(2)_________; ?????? ten=________(3)_________; ?????? one=________(4)_________; ?????? if (________(5)___________) ?????? { ???????? printf("]",num); ???????? count ; ??????? } ????? } ????? printf("\n"); ????? printf("no.=%d\n",count); ???? } 五 编写程序题
1.求出所有正整数相乘乘积为64的数对2. 写一个程序,读入一个 3 × 3 的矩阵,求出它的转置存入该矩阵并输出。(注:转置是将原矩阵的行列互换)
3 .输出 100 之内所有个位数字为 6 且能被 3 整除的自然数。(如: 36 , 66 , 96 ……)
作业题(四)
一 填空题 1 c语言用( )号括起来的单个或多个字符表示字符串常量。
float x, y, z;是将x, y, z; 定义为 ( )。
3 可执行的c语言程序系由一个或多个( )组成。
4目前常用c语言的一个整型变量的存储容量为( )个字节。
5已知int a=1,b=2;表达式 (a 6在一维数组中,不同数组元素的数据类型是否可以不同( )?
7已知 int a,b,c; a或者b两个中间有一个小于c的表达式是( )。
8要使for(i=0;i<= ;printf(“%d\n”,i =2));程序段输出10个整数,i应<=( )。
9在switch语句中出现的break语句的功能是( )。
10若while((ch=getchar())==’e’) printf(“*”);输入字符串:abcde<回车>,则循环体将执行 ( ) 次。
(二)单项选择题
1. 若变量已正确定义并赋值,下面符合c语言语法的表达式是
(a) a:=b 1 (b) a=b=c 2 (c) int 18.5%3 (d) a=a 7=c b
2. 若已定义x和y为double类型,则表达式x=1,y=x 3/2 的值是
(a) 1 (b) 2 (c) 2.0 (d) 2.5
3. 若变量a、i已正确定义,且i已正确赋值,合法的语句是
(a) a==1 (b) i; (c) a=a =5; (d) a=int(i);
4. 若有以下程序段,
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是
(a) 0 (b) 0.5 (c) 1 (d) 2
5.c语言规定,程序中各函数之间 (a) 既允许直接递归调用也允许间接递归调用 (b) 不允许直接递归调用也不允许间接递归调用 (c) 允许直接递归调用不允许间接递归调用 (d) 不允许直接递归调用允许间接递归调用
6.以下程序段正确的是( )
(a)if(a>b) c=1 (b) if(a>b) c=1;
else c=2; else c=2
(c) if(a>b) c=1; (d) if(a>b); c=1;
else c=2; else c=2;
7.以下程序运行的结果是( )
main()
{int x=12,y;
y=x>12 ? x 10 : x-12;
printf(“y=%d\n”,y);}
(a)y=0 (b) y=22 (c)y=12 (d)y=10
8.以下不是c语言规定保留字的是( )。
(a)float???? (b)integer???? (c)signed???? (d) unsigned
9.以下叙述中不正确的是(? )。
?? (a)在不同的函数中可以使用相同名字的变量
?? (b)函数中的形式参数是局部变量
?? (c)在一个函数内定义的变量只在本函数范围内有效
?? (d)在一个函数内的复合语句中定义的变量在本函数范围内有效
10.在宏定义 #define pi 3.14159中,用宏名pi代替一个(? )。  (a) 单精度数 (b) 双精度数 (c) 常量 (d) 字符串
(三)写出程序运行结果

1. main()
{ int a=1, b=2, c=3;
if(a>c)
b=a; a=c; c=b;
printf(“a=%d b=%d c=%d\n” ,a,b,c);}

2.main()
{ int x=1, y=1, i=0;
do
{ x=x y ; y=x y ;i ;
printf (“x=%d y=%d\n”, x, y);
} while(i<=3);}
3. main( )
{int i=5;
do
{switch(i%2)
{case 4: i--; break;
case 6: i--; continue;
}
i-=2;
printf("]",i);
}while(i>0);
}
4. long fib(int n)
 { if(n>2) return(fib(n-1) fib(n-2));
 else return(2);
 }
 main0
 { printf(“%d\n”,fib(3));
}
5. 若x=3,y=z=4,求下列表达式的值
(z>=y>=x)?1:0
z>=y&&y>=x
(四)程序填空
编写程序,实现:将自然数1、2、3、···、25以方向依此填入二维数组a(5行5列)并按照矩阵形式输出结果。 ??? ?? ?? ?? ??  ? 11??? 7??? 4??? 2??? 1 ? 16?? 12??? 8??? 5??? 3 ? 20?? 17?? 13??? 9??? 6 ? 23?? 21?? 18?? 14?? 10 ?? 25?? 24?? 22?? 19?? 15 ?请填空完善程序。 ?#include ? #define n 5 ? main() ? { ???? int i,j,k; ???? int a[n][n]; ???? k=1; ???? for (i=n-1;i>=0;i--) ?????? for (j=0;j 1.设计一个判断输入年份是否是闰年的程序。
2.检测某一给定字符串的长度(字符数),不包括结束符’\0’。
3.求二维数组a[3][4]中最大元素值。
作业题(五)
一 填空题
1c语言源程序的扩展名为*.c、目标文件的扩展名为( )、可运行文件的扩展名为( )。
2能正确表示“当a=5时布尔量bl为真,否则为假”的表达式是( )。
3 3行4列的二维数组,共有( )个元素。
4已知 int x; 如果用scanf(“%f”,&x);给x赋值,错误的原因是( )。
5将 str定义为字符数组并初始化为“lei”的语句是( )。
6已知 int a,b; a、b中有一个小于0的表达式是( )。
7在while(表达式) 循环语句中,表达式的值是( )时可以循环,至少循环( )次。
8在c语言中,表示逻辑量“真”用1,表示逻辑量“假”用( )。
(二)单项选择题
1. 下列不正确的转义字符是 (a) '\\' (b)'\" (c) '074' (d) '\0
2.若有以下定义:  char a; int b;  float c; double d;  则表达式a*b d-c值的类型为  (a) float (b)int (c) char (d) double
3. 表示关系x<=y<=z的c语言表达式为  (a) (x<=y)&&(y<=z) (b)(x<=y)and(y<=z)  (c) (x<=y<=z) (d) (x<=y)&(y<=z)
4.常数的书写格式决定了常数的类型和值, 0x1011 是 ( )
(a) 8 进制整型常量 (b)字符常量
(c) 16 进制整型常数 (d)2 进制整型常数
5. 设x和y均为int型变量,则执行下的循环后,y值为  for(y=1,x=1;y<=50;y )  { if(x>=10))break;  if (x%2==1)  { x =5; continue;}  x-=3;  } (a) 2 (b)4 (c) 6 (d) 8
6.给出以下定义: char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 (a) 数组x和数组y等价 (b)数组x和数组y的长度相同 (c) 数组x的长度大于数组y的长度 (d) 数组x的长度小于数组y的长度
7.假定所有变量均已正确说明,下列程序段运行后x的值是  a=b=c=0;x=35;  if(!a)x--;  else if(b);  if(c)x=3;  else x=4; (a)34 (b)4 (c) 35 (d) 3
8. 假定a和b为int型变量,则执行以下语句后b的值为 a=1; b=10; do { b-=a; a ; } while (b--<0) ; (a) 9 (b)-2 (c) -1 (d) 8
9. 设j为int型变量,则下面for循环语句的执行结果是  for( j=10;j>3;j--)  { if(j%3)j--;  --j; --j;  printf("%d ",j);  } (a) 6 3 (b)7 4 (c) 6 2 (d) 7 3
10.设有以下宏定义: #define n 3 #define y(n) ( (n 1)*n) 则执行语句:z=2 * (n y(5 1));后,z的值为 (a) 出错 (b)42 (c) 48 (d) 54 (三)写出程序运行结果
1.main()
{ int a, b;
for(a=1, b=1; a<=100; a )
{ if(b>=10) break;
if (b%3= =1)
{ b =3; continue; }
}
printf("%d\n",a);
} 2.int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=5, b=7;
fun();
printf("%d%d \n", a,b);
} 3.#define m(x,y,z) x*y z
main()
{ int a=1,b=2, c=3;
printf("%d\n", m(a b,b c, c a));
}
4. #include
main( )
{
int s=0,k;
for (k=0; k<=7;k )
{
switch(k)
{
case 1:
case 4:
case 7: s ;
break;
case 2:
case 3:
case 6: break;
case 0:
case 5: s =2;
break;
}
}
printf(“s=%d\n”,s);
}5. #include
main ( )
{
int j=1,k,sum,m,n=5;
sum=0;
while (j<=n)
{
m=1;
for(k=1; k<=j;k )
m=m*k;
sum=sum m;
j ;
}
printf(“sum=%d\n”,sum);
}
(四)程序填空
1.函数fun的功能是使一个字符串按逆序存放,请填空  void fun (char str[])  { char m; int i,j;  for(i=0,j=strlen(str);i< ;i ,j--)  { m= ;  str= ;  str[j-1]=m;  }  printf("%s\n",str);  } 2.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ascii码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。  #include  main()  { char str[100],str2[100],c;  int i,s;  printf("\n input string 1:\n"); gest(str1);  printf("\n input string 2:\n"); gest(str2);  i=0;  while((strl==str2&&(str1!= ))  i ;  s= ;  printf("%d\n",s);  }(五)编写程序题
编一过程判定s字符串是否为一个palindrome,所谓palindrome是指其从正反两个方向看都是一样的,如“madam”。
已知一个一维数组a[11]中有10个数,求出其中前n个数的和并放入a[10]中。其中n由键盘输入。打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和就等于该数本身。例如:153是一个“水仙花数”,因为153=13 53 33。www.op5n.com提醒,答案可以联系qq或微信 2759931937
最新回复 (0)
发新帖