您的当前位置:首页正文

河南理工大学万方科技学院C语言设计2010-2011试卷A

2020-12-07 来源:步旅网
 „„„„„„ „„ „„ „„ „„ „„ „„ „„ ::线线号„„号学学„„ „„ „„ „„ „„ „„ „„ „„ „„ „„ :„„:名封封名姓姓„„ „„ „„ „„ „„ „„ „„ „„ „„ „„ „„ „„ 密密 „„ ::„„级级„„班班„„业业„„

河南理工大学万方科技学院 2010-2011 学

B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个年第 2 学期

二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一《C程序设计》试卷(A卷)(张丽)

个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行

2.按照C语言规定的用户标识符命名规则,不能出现在标识符考试方式: 闭卷 本试卷考试分数

占学生总评成绩的 70 % 中的是()

A)大写字母 B)连接符 C)数字字符 D)下划线 总 3.以下叙述中错误的是( ) 分 题号 一 二 三 四 五 六 七 八 九 十 核A)C语言是一种结构化程序设计语言

分 得 B)结构化程序有顺序、分支、循环三种基本结构组成 人 分 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡模块化的设计方法

4.对于一个正常运行的C程序,以下叙述中正确的是()

A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结 复查总分 总复查人 束

C)程序的执行总是从main函数开始,在程序的最后一个函数 中结束

得分

(本题30分)一、选择题(在每小题列出的四个选D)程序的执行总是从程序的第一个函数开始,在程序的最后一 项中只有一个选项是符合题目要求的,请将正确选项个函数中结束

前的字母填在题后的下划线“ ”上。本题2分/5.设变量均已正确定义,若要通过

scanf

小题) (“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2

1.下列叙述中错误的是( )

赋数值10和20,为变量c1和c2赋字符X和Y。以下所示A)计算机不能直接执行用C语言编写的源程序

的输入形式中正确的是(注:□代表空格字符)( ) A)10□X□20□Y〈回车〉 B)10□X20□Y〈回车〉

《C程序设计》试卷 第1页(共4页)

C)10□X〈回车〉 D)10X〈回车〉 20□Y〈回车〉 20Y〈回车〉 6.若有代数式( )

A)sqrt(abs(n^x+e^x)) B)sqrt(fabs(pow(n,x)+pow(x,e))) C)sqrt(fabs(pow(n,x)+exp(x))) D)sqrt(fabs(pow(x,n)+exp(x)))

7.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()

A)k++ B)k+=1 C)++k D)k+1

8.有以下程序,其中%u表示按无符号整数输出() main()

{unsigned int x=0xFFFF; /* x的初值为十六进制数*/ printf(“%u\\n”,x); }

程序运行后的输出结果是

A)-1 B)65535 C)32767 D)0xFFFF

9.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是( )

A)if(x++); B)if(x>y&&y!=0); C)if(x>y)x-- D)if(y<0){;} else y++; else x++;

10.以下选项中,当x为大于1的奇数时,值为0的表达式( )

(其中e仅代表自然对数的底数,不

A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0 11.以下叙述中正确的是( ) A)break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C)break 语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用相同 12.有以下程序 main()

{int k=5,n=0; do {switch(k)

{case1: case3:n+=1; break; default:n=0;k--;

case2:case4:n+=2;k--;break; } printf(“%d”,n); }while(k>0&&n<5); }

程序运行后的输出结果是( )

A)222 B)0235 C)02356 D)2356 13.有以下程序 main() {int i,j;

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

{for(j=i;j<4;j++)printf(“%d*%d=%d”,i,j,i*j);

是变量),则以下能够正确表示该代数式的C语言表达式是

《C程序设计》试卷 第2页(共4页)

printf(“\\n”); } }

程序运行后的输出结果是( )

A)1*1=1 1*2=2 1*3=3 B)1*1=1 1*2=2 1*3=3

2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 C)1*1=1 D)1*1=1

1*2=2 2*2=4 2*1=2 2*2=4

1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9 14.以下合法的字符型常量是( )

A)”\\x13” B)”\\018” C)”65” D)”\\n” 15.在C语言中,函数返回值的类型最终取决于() A)函数定义时在函数首部所说明的函数类型 B)return语句中表达式值的类型 C)调用函数时主函数所传递的实参类型 D)函数定义时形参的类型 得分

(本题15分)二、程序填空题(下面给出了2个程序,请按照题意将下划线处缺少的部分补上,使其能正确运行。本题3分/空)

int a, b, c, temp,max;

printf(“请输入3个数: ” ); scanf(“%d, %d, %d”, &a,&b,&c); temp= ; max= ;

printf(“最大数是%d\\n”,max ); return 0; }

2. 求一个3x3的整型矩阵对角线元素之和。请填空完成。

main ( )

{ int a[3][3],sum=0; int i, j; printf (“enter data:\\n”); for (i=0;i<3;i++); ; scanf(“%3d,”, &a[i][j]);

; ; printf(“sum=%6d\\n”,sum );

return 0; } 得分

(本题15分)三、程序改错题(请改正下列程序中的错误,使之能得出正确的结果。

注意:只能修改“/******found******/”之间的行,

1. 有3个整数a,b,c,由键盘输入,输出其中最大的数。请用条件表达大完成填空。

main( ) {

不得增行或减行,也不得更改程序的结构。本题3分/处) 1.求100~200之间的全部素数,请改正程序中的错误,使它能得出正确的结果。

《C程序设计》试卷 第3页(共4页)

#include # include int main ( ) {int n, k i, m=0;

/*********found*********/ for (n=101; n<=200; n=++)

{k=sqrt(n);

/*********found*********/ for (i=2;i<=k;i++) if (n/i==0) ; if(i>=k+1) {printf(“%d”,n); m=m+1; }

/*********found*********/ if(m%10==0)printf(“\\n”); }

printf(“\\n”); return 0 ; }

2. 自编写一个函数,将两个字符串连接。请改正程序中的错误,使它能得出正确的结果。

#include

int main( )

{ void concatenate(char string1[ ], char string2[ ], char string[ ]);

char s1[100 ], s2[100 ], s[100 ];

/****************found****************/

printf(“input string1: ”); scanf(“%s”,s1);

printf(“input string2: ”); scanf(“%s”,s2);

concatenate(string1, string2, s);

printf(“\\n the new string is: %s\\n,”, s ”);

/****************found****************/

return 0; }

void concatenate(char string1[ ], char string2[ ], char string[ ]) { int i, j;

for (i=0;string1[ i]!=‟\\0‟;i++) string [ i]= +string1[ i];

/****************found****************/ for (i=0;string2[ j]!=‟\\0‟;j++) string [ i+j]= string2[ j]; string [ i+j]!=‟0‟; }

/****************found****************/

得分

(本题15分)四、程序阅读题(阅读下面的程序并 填空。本题5分/空)

1. 有如下程序段: int i=1,sum=0; while(i<=100) {

《C程序设计》试卷 第4页(共4页)

sum+=i; i++;

}

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

输出结果: 。

2. #include void main( )

{int a[5]={2,4,6,9,12},b[6]={2,3,4,6,8,9}; for(int i=0;i<5;i++) for(int j=0;j<6;j++)

if(*(a+i)==*(b+j)) printf(“%d ”,*(a+i)); printf(“\\n”);

}

输出结果: 。 3. #include #include

void main() { char str1[]=“*******”; for(int i=0;i<4;i++)

{ printf(“%s\\n”,str1);

str1[i]= „ ‟;

str1[strlen(str1)-1]= „\\0‟;

}

}

输出结果: 。

得分

(本题25分)五、编程题(共3小题;第1小题5 分,第2、3小题,每小题10分)

1. 对10个数组元素依次赋值为0~9,要求用for语句实现循环并逆序输出。(5分) 2. 编程实现用递归法计算n!,n!可用下述公式表示:(10分)

n!n!1(n0,1) n(n1)(n1)

3. 输入a和b两个整数,按先大后小的顺序输出a和b,要求用指针方法编程。(10分)

C程序设计》试卷 第5页(共4页)

因篇幅问题不能全部显示,请点此查看更多更全内容