moocC语言程序设计_76答案(慕课2023课后作业答案)

分类: 随行课堂题库发布于:2024-06-02 13:10:20ė36990次浏览645条评论

moocC语言程序设计_76答案(慕课2023课后作业答案)

第1章 绪论

绪论

1、语言程业答以下说法正确的序设是( )
A、C语言程序总是计答从第一个的函数开始执行
B、在C语言程序中,案慕案要调用函数必须在main()函数中定义
C、课课C语言程序总是后作从main()函数开始执行
D、C语言程序中的语言程业答main()函数必须放在程序的开始部分

2、一个C程序可以包含任意多个不同名的序设函数,但有且仅有一个( ).一个C程序总是计答从此开始执行。
A、案慕案过程
B、课课主函数
C、后作函数
D、语言程业答include

3、序设C语言规定,计答在一个源程序中,main函数的位置( )
A、必须在最开始
B、必须在系统调用的库函数的后面
C、可以任意
D、必须在最后

4、在C语言中,每个语句和数据定义是用( )结束。
A、句号
B、逗号
C、分号
D、括号

5、下列叙述中错误的是( )
A、C语言是一种结构化程序设计语言
B、结构化程序由顺序、分支、循环3种基本结构组成
C、使用3种基本结构构成的程序只能解决简单问题
D、结构化程序设计提倡模块化的设计方法

6、关于C程序的叙述正确的是( )
A、从//开始的程序都是注释
B、/* */只能写在一行,其中的内容为注释
C、一条语句可以写成多行,多条语句也可以写在一行
D、一行只能写一条语句

7、( )是C程序的基本构成单位。
A、函数
B、函数和过程
C、文本
D、语句

8、在C语言中,一个语句( )为结束标志。
A、句号
B、逗号
C、分号
D、括号

第2章 数据类型

2.1? 变量与常量随堂测验

1、下列标识符中,不合法的用户标识符为( )
A、month
B、_5xy
C、int
D、your_name

2.3? 赋值运算符与表达式随堂测验

1、若a, b均为int类型变量,则执行以下程序段后的输出是:___________ x=15; y=5; printf("%d\n",x%=(y%2));

2.4?逻辑运算符与表达式随堂测验

1、设i, j, k是int类型变量,且i=3, j=4, k=5,则表达式 i && j运算结果是_______, !((i<j)&&!k||1) 运算结果是________

数据类型1

1、下列选项中,合法的一组C语言数值常量是( )
A、028 5e- 3.0xf
B、12.0xa23 4.5e0
C、177 4el.5 0abc
D、0x8A 10,000 3.e

2、在C语言中,下列类型属于基本类型的是( )
A、整型、实型、字符型
B、空类型、枚举型
C、结构体类型、实型
D、数组类型、实型

3、下列字符串不属于标识符的是( )
A、_above
B、# dfg
C、_cnd
D、all

4、10+'a'+ 1.5-567.345/'b’的结果是( )型数据。
A、long
B、double
C、int
D、unsigned float

5、C语言中,运算对象必须是整型数的运算符是( )
A、%
B、\
C、%和\
D、* *

6、若num、a、b、c都是int变量,则执行表达式 num=(a=4,b=16,c=32)后num的值是( )
A、4
B、16
C、32
D、0

7、判断char型变量c1是否为大写字母的正确表达式是( )。
A、'A'<=c1<='Z'
B、(c1>='A')&(c1<='Z')
C、(c1>='A')&&(c1<='Z')
D、('A'<=c1)AND('Z'>=c1)

8、若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )。
A、num%2==1
B、!(num%2==0)
C、!(num%2)
D、num%2

9、(  )是C语言提供的合法的数据类型关键字。
A、Boolean
B、signed
C、integer
D、Char

10、不正确的字符串常量是(  )。
A、'abc'
B、"12'12"
C、"\0"
D、" "

11、在C语言中,程序运行期间,其值不能被改变的量叫__ ____

12、在C语言中,用来标识变量名、符号变量名,函数名,数组名,类型名,文件名的有效字符序列称为__ ____

13、若有说明语句:char ch1='\065',则ch1中包含字符个数_______

14、在C语言中,char型数据在内存中的存储形式是_________

15、逻辑运算符的运算对象的数据类型__________

第3章 数据的输入输出

3.3? 字符数据输入输出随堂测验

1、程序如下,下叙述中正确的是______。 #include<stdio.h> int main() { char a1='M', a2='m'; printf("%c\n",(a1, a2)); }

2、以下程序运行后输出的结果是________。 #include<stdio.h> int main() { int a,b,d=25; a=d/10%9; b=a+-1; printf("%d,%d\n",a,b); }

数据的输入输出

1、下列程序打印输出C Language Programming #include<stdio.h> int main() { printf("C Language Programming\n"); return 0; } 程序的运行结果是:
A、程序编译出错
B、"C Language Programming\n"
C、C, Language, Programming
D、C Language Programming

2、要输出结果4*4=16,下列语句不正确的是( )
A、printf("4*4=16\n");
B、printf("4*4=%d",16);
C、printf("4*4=%d",4*4);
D、printf("4*4=%d,16");

3、已知在ASCH 字符集中、数字0的字号为48,下面程序的输出结果为( )。 #include <stdio.h> int main( ) { char x, y; x='0'; y='9'; printf("%d,%d\n",x,y); }
A、因输出格式不合法,输出错误信息
B、48,57
C、0,9
D、48.58

4、以下程序的运行结果是( ) #include <stdio.h> int main( ) { int c,x,y; x= l; y= 1; c= 0; c=x++||y++; printf("\n%d%d%d\n",x,y,c); }
A、110
B、211
C、011
D、001

5、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是( )。 #include <stdio.h> int main() { int r; float s; scanf("%d",&r); s= *p*r*r; printf("s=%f\n",s); }
A、注释语句书写位置错误
B、存放圆半径的变量r不应该定义为整型
C、s=*p*r*r;语句中使用了非法的表达式
D、输出语句中格式描述符非法

第4章 选择结构

4.3? 双分支if语句随堂测验

1、以下程序的输出结果是:________ #include <stdio.h> int main() { float x=2.0,y; if(x<0.0)y=0.0; else if (x<10.0)y=1.0/x; else y= 1.0; printf("%f\n", y); }

4.4?if语句的嵌套随堂测验

1、若从键盘输入58,则以下程序输出的结果是__________ #include<stdio.h> int main() { int a; scanf("%d",&a); if(a>50)printf("%d",a); if(a>40)printf("%d",a); if(a>30)printf("%d",a); }

2、以下程序输出:_____ #include<stdio.h> int main() { int x1=3, x2=0, x3=0; if( x1 = x2+x3) printf("*****"); else printf("#####"); }

4.6?switch语句随堂测验

1、假定等级和分数有以下对应关系: 等级:A 分数:85~100  等级:B 分数:60~84  等级:C 分数:60 以下 对于等级grade输出相应的分数区间,能够完成该功能的程序段是_____.
A、switch (grade) { case 'A':printf("85--100\n"); case 'B':printf("60--84\n"); case 'C':printf("60以下\n"); default:printf("等级错误!\n"); }
B、switch (grade) { case 'A':printf("85--100\n");break; case 'B':printf("60--84\n"); case 'C':printf("60以下\n"); default:printf(" 等级错误!\n"); }
C、switch (grade) { case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");break; case 'C':printf("60以下\n"); default:printf("等级错误!\n"); }
D、switch (grade) { case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");break; case 'C':printf("60以下 \n");break; default:printf("等级错误!\n"); }

2、在执行下述程序时,若从键盘输入字母H,则输出结果是( )。 #include <stdio.h> int main() { char ch; ch=getchar(); switch(ch) { case 'H':printf("Hello! \n"); case 'G':printf("Good morning! \n"); } }

选择结构

1、以下程序的输出结果是:( ) #include <stdio.h> int main() { float x=2.0,y; if(x<0.0) y=0.0; else if (x<10.0) y=1.0/x; else y= 1.0; printf("%f\n", y); }
A、0.500000
B、1.000000
C、0.000000
D、0.250000

2、下列程序的输出结果是( )。 #include<stdio.h> int main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); else if(c-1>=d) printf("%d\n",d+1); else printf("%d\n",d+2); }
A、2
B、3
C、4
D、编译时有错且无结果

3、以下程序运行时,若从键盘输入9,则输出结果是( )。 #include<stdio.h> int main() { int a=1; scanf("%d",&a); if(a++<9) printf("%d\n",a); else printf("%d\n",a); }
A、10
B、11
C、9
D、8

4、请阅读以下程序: #include<stdio.h> int main() { int a=5,b=0,c=1; if(a=b+c)printf("***\n"); else printf("$$$\n"); }  以上程序( )
A、有语法错不能通过编译
B、可以通过编译但不能通过连接
C、输出***
D、输出$$$

5、若int k=8;则执行下列程序后,变量k的正确结果是____   #include<stdio.h> int main() { int k=8; switch(k) { case 9:k+=1; case 10:k+=1; case 11:k+=1;break; default:k+=1; } printf("%d\n",k); }
A、12
B、11
C、10
D、9

6、现有如下程序段,此程序段编译有错误,则程序段的错误出在( ) #include<stdio.h> int main() { int a=30,b=40,c=50,d; d=a>30 ? b:c; switch(d) { case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c); default:printf("#");} }
A、default:printf("#");这个语句
B、d=a>30?b:c;这个语句
C、case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);这三个语句
D、switch(d)这个语句

7、设变量x和y均已正确定义并赋值,则以下if语句中,在编译时将产生错误信息的是( )。
A、if(x++);
B、if(x>y&&y!=0) ;
C、if(x>0) x-- else y++;
D、if(y<0){ ; } else x++;

8、设 int x=1, y=1; 表达式( !x || y--) 的值是 ( )
A、0
B、1
C、2
D、-1

9、在C程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用_____表示逻辑表达式值为“真”,又用_____表示逻辑表达式值为“假”。 

10、执行以下程序段后,输出结果是______。 #include<stdio.h> int main() { int a=3,b=5,c=7; if(a>b) a=b;c=a; if(c!=a) c=b; printf("%d, %d, %d\n",a,b,c); }

11、若执行下述程序时,若从键盘输入6和8时,结果为_______  #include<stdio.h> int main() { int a,b,s; scanf("%d%d",&a,&b); s=a; if (a = b) s*=s; printf("%d",s); }

第5章 循环结构

5.1? for循环随堂测验

1、执行语句 for(i=0; i<10; i++) ; 结束后,i的值是__________

2、阅读以下程序,其运行结果是______。 #include <stdio.h> int main() { int i; for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A'); printf("\n"); return 0; }

5.2? while循环随堂测验

1、阅读以下程序,输出结果是______。 #include<stdio.h> int main() { int n=9; while(n>6) { n--; printf("%d",n); } }

5.3? do-while循环随堂测验

1、以下程序段的运行结果是______。 #include<stdio.h> int main() { int i=0; do printf("%d,",i); while(i++); printf("%d\n",i); }

5.4? 循环的嵌套随堂测验

1、读以下程序,printf会被执行几次?__________ #include<stdio.h> int main() { int i,j; for(i=1;i<4;i++) { for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j); } }

5.5? 循环的辅助控制语句随堂测验

1、以下程序运行后的输出结果是_______。 #include<stdio.h> int main() { int i,j,x=0; for(i=0;i<2;i++) { for(j=0;j<2;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x); }

循环结构

1、以下程序运行后的输出结果是( )。 #include<stdio.h> int main() { int y=10; while(y--) ; printf("y=%d\n",y); }
A、y=0
B、y=-1
C、y=1
D、while构成无限循环

2、语句for(表达式1;;表达式3)等价于( )
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)

3、下列程序段中是死循环的是( )
A、int n=1; while(!n) n++;
B、int n=1; do{ n--;} while(n);
C、int n=1; do{ n+1; } while(n)
D、for(n=5;n<1;) ;

4、下面能正确计算1*2*3*???*10的程序段是( )
A、do{ k=1;n=1;n=n*k;k++; }while(k<=10);
B、do{ k=1;n=0;n=n*k;k++; }while(k<=10);
C、k=1;n=1; do{ n=n*k;k++; }while(k<=10);
D、k=1;n=0; do{ n=n*k;k++; }while(k<=10);

5、以下程序段描述正确的是( ) for(m=1;m<=100;m++) { scanf("%d",&y); if(y<0) continue; printf("%3d",m); }
A、当y<0时整个循环结束
B、y>=0时什么也不输出
C、printf函数永远也不执行
D、最多允许输出100个非负整数

6、以下不会构成无限循环的语句或语句组是( )。
A、n=0; do{ ++n;}while(n<=0);
B、n=0; while(1){ n++;}
C、n=10; while(n) ; { n--; }
D、for(n=0,i=1; ;i++) n+=i;

7、若y是整型变量,语句while(!y) 语句1; 若要执行语句1,则表达式 !y 成立等价于( )
A、y==0
B、y!=1
C、y!=0
D、y==1

8、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( )。
A、while((ch=getchar())!='N')printf("%c",ch);
B、while(ch=getchar()!='N ')printf("%c",ch);
C、while(ch=getchar()=='N ')printf("%c",ch);
D、while((ch=getchar())=='N ')printf("%c",ch);

9、若k为整型变量,则以下for循环的执行次数是若k为整型变量,则以下for循环的 printf 执行次数是_______ for(k=2;k==0;) printf("%d",k--);

10、若变量m已定义,以下程序段中的do-while循环次数是________ m=-1; do{ m=m*m;}while(!m);

11、下面程序的运行结果是___________ #include<stdio.h> int main() { int m=0; while(m<=2) { m++; printf("%d",m); } }

12、若有程序段:int x=10; while(x=0) x=x-1; 则循环体的执行次数是___________

13、以下程序输出结果是_______。 #include<stdio.h> int main() { int i; for(i=0;i<3;i++) switch(i) { case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } }

第6章 数组

6.1?数组的引入随堂测验

1、假定int类型变量占用四个字节,其有定义:int x[10]={ 0,2,4};,则数组x在内存中所占字节数是( )
A、4
B、12
C、20
D、40

6.2? 二维数组的定义与引用随堂测验

1、以下二维数组c的定义形式是( )
A、int c[3][]
B、float c[3,4]
C、double c[3][4]
D、float c(3)(4)

2、有如下定义语句:int aa[][3]={ 12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为( )
A、3,2
B、3,1
C、2,2
D、2,1

6.4? 常用字符串处理函数随堂测验

1、有以下程序  #include<stdio.h> int 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); return 0; } 程序运行后的输出结果是( )
A、9,9
B、8,9
C、1,8
D、9,8

2、设有两字符串“Good”、“Morning”分别存放在字符数组 str1[20]、str2[20]中,下面语句中能把“Morning”连接到“Good”之后的是( )。
A、strcpy(str1,str2);
B、strcpy(str1, "Morning");
C、strcat(str1, "Morning");
D、strcat("Good" ,str2);

数组

1、阅读如下程序段,则程序在先后输入love和china后,输出结果是( ) #include<stdio.h> #include<string.h> int main() { char a[30],b[30]; int k; gets(a); gets(b); k=strcmp(a,b); if(k>0) puts(a); else if(k<0) puts(b); }
A、love
B、china
C、lovechina
D、没有输出结果

2、已知:char a[20]= "abc",b[20]= "defghi";则执行下列语句后的输出结果为( ) printf("%d",strlen(strcpy(a,b)));
A、11
B、6
C、5
D、以上答案都不正确

3、阅读下列程序,则在执行后,程序的运行结果为( )  #include <string.h> #include<stdio.h> int main() { char a[30]="nice to meet you!"; strcpy(a+strlen(a)/2,"you"); printf("%s\n",a); }
A、nice to meet you you
B、nice to
C、meet you you
D、nice to you

4、若有定义: int a[5]={ 1,2,3,4,5}; char b='c',c; 则下面表达式中数值为 2 的是( )。
A、a[2]
B、a[c-b]
C、a[b]
D、a[b-'b']

5、以下对C语言字符数组描述错误的是( )。
A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入或输出
C、可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
D、不可以用关系运算符对字符数组中的字符串进行比较

6、以下合法的数组定义是( )
A、int a[]="language";
B、int a[5]={ 0,1,2,3,4,5};
C、char a="string";
D、char a[]={ "0,1,2,3,4,5"};

7、以下各组选项中,均能正确定义二维实型数组a的选项是( )。
A、float a[3][4]; float a[][4]; float a[3][]={ { 1},};
B、float a(3,4); float a[3][4]; float a[][]={ { 0};};
C、float a[3][4]; static float a[][4]={ { 0},};
D、float a[3][4]; float a[3][];

8、关于int a[2][4]={ 1,2,3,4,5,6}; 说法不正确的是( )
A、它的等价形式之一是int a[][4]={ { 1,2,3,4},{ 5,6}}
B、它的等价形式之一是int a[][4]={ 1,2,3,4,5,6,0,0}
C、它的等价形式之一是int a[2][]={ { 1,2,3,4},{ 5,6,0,0}}
D、它的等价形式之一是int a[][4]={ { 1,2,3,4},{ 5,6,0}}

9、下列关于char str[3][100]说法不正确的是( )
A、可以看作是3个字符串,而且每一个字符串的长度都不超过100
B、该数组最多可以容纳300个字符
C、可以分别用gets(str[1])和 puts(str[1])来输入和输出该字符数组中下标为1的字符串
D、可以通过puts(str)一次性输入数组的全部内容

10、假设 array 是一个已定义好的,有 10 个元素的整型数组, 则下列写法中正确的是( )。
A、array[0]=10;
B、array=0;
C、array[10]=0;
D、array[-1]=0;

11、对以下说明语句的正确理解是 ( ) int a[10]={ 6,7,8,9,10};
A、将5个初值依次赋给a[1]至a[5]
B、将5个初值依次赋给a[0]至a[4]
C、将5个初值依次赋给a[6]至a[10]
D、因为数组长度与初值的个数不相同,所以此语句不正确

12、访问二维数组中的特定元素,需要同时指明______ 下标和_______下标。 填空题多个答案按空格隔开

13、设有数组int a[4][5],则该数组的第一个元素和最后一个元素分别为______、_____。

14、下面程序的运行结果是_________。 #include<stdio.h> #include <string.h> int main() { char s[12]= "a book!"; printf("%d",strlen(s)); }

15、读以下程序得到运行结果是______ #include<stdio.h> int main() { int k[30]={ 12,324,45,6}; int count=0,i=0; while(k[i]) { if(k[i]%2==0 || k[i]%5==0) count++; i++; } printf("%d,%d\n",count,i); }

第7章 函数

7.1? 函数的声明、定义与调用随堂测验

1、设有如下的函数 fun (float x)  { printf("\n%d",x*x);   }  则函数的类型( )
A、与参数x的类型相同
B、void
C、int
D、无法确定

2、以下正确的函数头定义形式是( )
A、double fun(int x,int y)
B、double fun(int x;int y)
C、double fun(int x,int y);
D、double fun(int x,y);

7.2? 函数的参数传递随堂测验

1、数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是( )
A、实参将其地址传递给形参,并释放原先占用的存储单元
B、实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C、实参将其值传递给形参,调用结束时形参再将其值回传给实参
D、实参将其值传递给形参,调用结束时形参并不将其值回传给实参

2、以下关于函数叙述中,错误的是( )
A、函数未被调用时,系统将不为形参分配内存单元
B、实参与形参的个数应相等,且实参与形参的类型必须对应一致
C、当形参是变量时,实参可以是常量、变量或表达式
D、形参可以是常量、变量或表达式

7.3? 变量的作用域随堂测验

1、以下正确的说法是( )。如果在一个函数中的复合语句中定义了一个变量,则该变量
A、只在该复合语句中有效
B、在该函数中有效
C、在本程序范围内有效
D、为非法变量

2、阅读以下程序代码,其运行结果是_____________ #include <stdio.h> void swap(int a,int b) { int t; t=a;a=b;b=t; printf("%d%d",a,b); } int main() { int a=3,b=4; swap(a,b); printf("%d%d\n",a,b); }

7.4? 变量的存储属性随堂测验

1、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )。
A、自动(auto)
B、静态( static )
C、外部(extern)
D、寄存器(register)

2、阅读以下程序,其运行结果是_____________ #include <stdio.h> func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } int main() { int k=4,m=1,p1,p2; p1=func(k,m); p2=func(k,m); printf("%d,%d\n",p1,p2); }

函数测验

1、C语言中auto型变量是( )
A、存储在动态存储区中
B、存储在静态存储区中
C、存储在外存储器中
D、存储在计算机CPU的寄存器中

2、一个函数的形式参数的作用域是( )
A、main()主函数
B、这个函数体
C、从定义处到文件尾
D、整个程序

3、在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( )
A、称为函数的直接递归调用
B、C语言中不允许这样的递归调用
C、称为函数的循环调用
D、称为函数的间接递归调用

4、若程序中定义函数 float myadd(float a, float b) { return a+b; } 并将其放在调用语句之后,则在调用之前应对该函数进行声明, 以下声明中错误的是( )
A、float myadd( float a,b);
B、float myadd(float b, float a);
C、float myadd(float, float);
D、float myadd(float a, float b);

5、以下函数fun形参的类型是( )。 fun( float x) { float y; y=3*x-4; return y; }
A、int
B、void
C、float
D、不确定

6、有参函数的返回值,是通过函数中的( )语句来获得的。
A、return
B、printf
C、scanf
D、函数说明

7、以下关于函数的叙述中不正确的是( )
A、C程序是函数的集合,包括标准库函数和用户自定义函数
B、在C语言程序中,被调用的函数必须在main函数中定义
C、在C语言程序中,函数的定义不能嵌套
D、在C语言程序中,函数的调用可以嵌套

8、以下关于函数叙述中,错误的是( )
A、函数未被调用时,系统将不为形参分配内存单元
B、实参与形参的个数应相等,且实参与形参的类型必须对应一致
C、当形参是变量时,实参可以是常量、变量或表达式
D、形参可以是常量、变量或表达式

9、以下叙述中正确的是( )
A、局部变量说明为static,其生存期将得到延长
B、全局变量说明为static,其作用域将被扩大
C、任何存储类的变量在未赋初值时,其值都是不确定的
D、形参可以使用的存储类说明符与局部变量完全相同

10、以下程序的运行结果为________。 #include <stdio.h> int x=2; int fun(int p) { static int x=3; x+=p; printf("%d ",x); return (x); } int main() { int y=3; printf("%d \n",fun(fun(x))); }

11、以下程序的运行结果是______________ #include <stdio.h> void f(int a, int b) { int t; t=a; a=b; b=t; } int main() { int x=1, y=3, z=2; if(x>y) f(x,y); else if(y>z) f(x,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); }

12、以下程序的功能是求任意两个整数a和b的最大公约数,并予以显示,程序的划线处应填入________。 #include <stdio.h> long cod(long n1,long n2) { long t; while(n2) { ________; n1=n2;n2=t; } return n1; } int main( ) { long a,b,x; printf("Please input two numbers:"); scanf("%ld%ld",&a,&b); x=cod(a,b); printf("%ld,%ld,%ld\n",a,b,x); }

13、函数fun的功能是:根据以下公式计算并返回S,n通过形参传入,n的值大于等于0。划线处应填________。 S=1-1/3+1/5-1/7+…1/(2*n-1) float fun(int n) { float s=0.0,w,t,f=-1.0; int i; for(i=0;i<n;i++) { f=-f; w=f/(2*i+1); s+=w; } ____________; }

14、下面函数调用语句含有实参的个数为______________ func((exp1,exp2),(exp3,exp4,exp5)); 

15、以下程序的运行结果是什么? #include<stdio.h> void hello_world(void) { printf("hello,world!\n"); } void three_hellos(void) { int counter; for(counter=1;counter<=3;counter++) hello_world(); } int main() { three_hellos(); }

第8章 指针

8.1? 指针的定义、初始化和引用随堂测验

1、下列关于指针变量赋空值的说法错误的是( )
A、当赋空值的时候,变量指向地址为0的存储单元
B、赋值语句可以表达为: 变量名=′\0′;
C、赋值语句可以表达为变量名=0;
D、一个指针变量可以被赋空值

2、int a= 10,*p=&a;语句中,p的值是_______
A、10
B、变量p的地址值
C、变量a的地址值
D、无意义

3、阅读以下程序,其执行结果是_________ #include <stdio.h>  int main() { int a,*p,*q; p=&a; q=&a; *p=5%6; *q=5; printf("%d\n",a); }

8.2? 指针与函数随堂测验

1、下列程序段的输出结果是_______。 #include <stdio.h> void fun(int *px, int *py) { printf("%d %d\n", *px, *py); *px=3;*py=4; } int main() { int x=1,y=2; fun(&x,&y); printf("%d %d\n",x, y); }

2、#include <stdio.h>   int *fun(int *a,int *b) { int c; c=*a%*b; return &c; } int main() { int a=5,b=19,*c; c=fun(&a,&b); printf("%d\n",++*c); }

8.3? 指针与数组随堂测验

1、对语句“int a[10],*p=a;”,下列表述中正确的是( )
A、*p被赋初值为a数组的首地址
B、*p被赋初值为数组元素a[0]的地址
C、p被赋初值为数组元素a[1]的地址
D、p被赋初值为数组元素a[0]的地址

2、若有说明语句 int a[5], *p=a; 对数组元素的正确引用是( )
A、a[p]
B、p[a]
C、*(p+2)
D、p+2

8.4? 指向字符串的指针随堂测验

1、阅读下面程序,则执行后的结果为_____ #include <stdio.h>    int main()   { char *str="abcdefghijklmnopq";   while(*str++!=′e′);   printf("%c\n",*str);  }

2、下面函数的功能是____ char *fun(char *str1,char*str2)   { while((*str1)&&(*str2++=*str1++)); return str2; }

指针单元测验

1、下列正确的定义语句是( )
A、int x=3,*p=1;
B、int x=3,*p=0;
C、int x=3,*p=x;
D、int *p=&x=3;

2、若有以下定义,且0<=i<5, 则对数组元素地址的正确表示是 ( ) int a[ ]={ 1,2,3,4,5},*p=a, i;
A、&(a+i)
B、a++
C、&p
D、&p[i]

3、下列语句定义p为指向float类型变量d的指针,其中正确的是( )
A、float d=0,*p=d;
B、float d=0,*p=&d;
C、float *p=&d,d=0;
D、float d=0,p=d;

4、若已定义: int a[]={ 0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是( )
A、a[p-a]
B、*(&a[i])
C、p[i]
D、a[10]

5、现有如下定义语句 int*p,s[20],i;   p=s; 表示数组元素s[i]的表达式不正确的是( )
A、*(s+i)
B、*(p+i)
C、*(s=s+i)
D、*(p=p+i)

6、有说明语句char *name="newspaper"; 则 可获取串中字符's'是( )
A、name[0]+3
B、*name+3
C、*(name+3)
D、name[4]

7、若有以下定义,则 *(p+5) 的值为 ( ) char s[ ]="Hello”, *p=s;
A、'0'
B、'\0'
C、'0'的地址
D、不确定的值

8、对于2个类型相同的指针变量,不能进行的运算是( )
A、+
B、- ==
C、==
D、=

9、已有定义int k= 2,*ptr1,*ptr2;且ptrl 和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。
A、k= *ptr1+ *ptr2
B、ptr2 =k
C、ptr1=ptr2
D、k= *ptrl * (*ptr2)

10、以下程序输出的结果是( ) #include <stdio.h> int main() { char w[][5]={ "ABCD","EFGH","IJKL","MNOP"}; int k; for (k=1; k<3; k++) printf("%s\n", w[k]+k); }
A、ABCD FGH
B、JKL OP
C、EFG JK
D、FGH KL

11、设有语句:int k=1, *p1=&k, *p2=&k;,以下不能正确执行的赋值语句是( )
A、p1=k;
B、p1=p2;
C、*p1=*p2;
D、k=*p1+*p2;

12、有以下程序 #include<stdio.h> int main()   { char *p="abcde\0fghjik\0 ";  printf("%d\n ",strlen(p));   }程序运行后的输出结果是______

13、阅读下面程序,在程序执行后的结果为______ #include <stdio.h> int main() { int c[][4]={ 1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}; printf("%x,%x\n",c[2][2],c[1][1]); }

14、下面程序段中,输出*的个数是__________ #include <stdio.h> int main( ) { char *s="\ta\018bc";   for(;*s!=′\0′;s++)printf("*"); }

15、以下程序输出的结果是:___________ #include <stdio.h> int main() { char a[11]="0123456789",*p; p=&a[4]; puts(p) ; }

16、设int a[10]={ 1,2,3}; 则*(a+3)的值是_______

17、阅读以下程序,输出结果为_________ #include<stdio.h> #include <string.h> void fun( char s[]); int main() { char a[]="abcde"; int k; fun(a); puts(a); return 0; } void fun( char s[]) { int x,y; char c; x=0; y=(strlen(s)-1)/2; for( ; x<y; x++,y--) { c=s[y]; s[y]=s[x]; s[x]=c; } }

18、下面程序的运行结果是_____________ #include <stdio.h> int main( ) { int b[10]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) ); return 0; }

第9章 结构体与共用体

9.1? 结构的概念随堂测验

1、设有以下说明语句   typedef struct { int n; char ch[8]; }PER; 则下面叙述中正确的是( )
A、PER 是结构体变量名
B、PER是结构体类型名
C、typedef struct 是结构体类型
D、struct 是结构体类型名

2、阅读以下程序代码,其运行结果是________ #include<stdio.h> struct cmplx { int x; int y; }cnum[2]={ 1, 3, 2, 7}; int main( ) { printf("%d\n", cnum[0].y *cnum[1].x ); return 0; }

结构体测验

1、C语言结构体类型变量在其有效作用域内,且在程序运行期间( )
A、VC环境在内存中仅仅开辟一个存放结构体变量地址的单元
B、所有的成员一直驻留在内存中
C、只有最开始的成员驻留在内存中
D、部分成员驻留在内存中

2、已知学生记录描述为: struct student { int no; char name[20], sex; struct{ int year, month, day;}birth; };struct student s; 设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是( )
A、year=1984;month=11;day=12;
B、s.year=1984;s.month=11;s.day=12;
C、birth.year=1984;birth.month=11;birth.day=12;
D、s.birth.year=1984; s.birth.month=11; s.birth. day =12;

3、在32位机,VC编译器下,以下程序的运行结果是________________ #include <stdio.h> int main() { struct date { int year,month,day;}today; printf("%d\n",sizeof(struct date)); }

中国大学C语言程序设计_76

中国大学C语言程序设计_76是一门基于C语言的计算机编程课程,旨在让学生掌握C语言的基本语法、数据类型、数组、函数、指针等核心概念,并通过实践项目提升编程能力和实践能力。

C语言的重要性

C语言是一种功能强大的计算机编程语言,具有高效、可移植性和可扩展性等特点,广泛应用于操作系统、嵌入式系统、游戏开发、网络编程等领域。C语言的学习不仅可以提升编程技能,还可以为学习其他编程语言打下坚实的基础。

课程内容

中国大学C语言程序设计_76课程包括以下内容:

  1. 基本语法:包括数据类型、运算符、控制语句等。
  2. 数组和字符串:包括一维数组、二维数组、字符串的定义和使用。
  3. 函数和指针:包括函数的定义和调用、指针的基本概念和使用。
  4. 结构体和联合体:包括结构体和联合体的定义和使用。
  5. 文件操作:包括文件的读写操作。
  6. 综合项目:通过一个综合项目的实现,提升学生的综合编程能力。

课程教材

中国大学C语言程序设计_76的课程教材为《C程序设计语言》(第2版)。

课程评估

中国大学C语言程序设计_76的课程评估包括以下方面:

  1. 课程作业:包括实验报告和编程练习。
  2. 期末考试:考察学生对于C语言的掌握程度。
  3. 综合项目:考察学生的综合编程能力。

课程收获

通过学习中国大学C语言程序设计_76,学生可以获得以下收获:

  1. 掌握C语言的基本语法和核心概念。
  2. 提升编程思维和实践能力。
  3. 打下学习其他编程语言的坚实基础。
  4. 加强团队协作和项目管理能力。

总结

中国大学C语言程序设计_76是一门重要的计算机编程课程,对于提升学生的编程能力和实践能力具有重要的意义。学习这门课程可以让学生掌握C语言的基本语法、数据类型、函数、指针等核心概念,提升编程思维和实践能力,为学习其他编程语言打下坚实的基础。



Ɣ回顶部