《南阳理工学院C语言考试系统》样题

更新时间:2023-09-15 04:15:01 阅读量: 资格考试认证 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《南阳理工学院C语言考试系统》样题

选择题

1、有输入语句:scanf(\a=%d,b=%d,c=%d\,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应当是( )。 A)132<回车> B)1,3,2<回车>

C)a=1 b=3 c=2<回车> D)a=1,b=3,c=2<回车>

2,以下能正确的定义整形变量a,b和c并为其赋初值5的语句是:

(A)int a=b=c=5; (B)int a,b,c=5; (C)a=5,b=5,c=5; (D)a=b=c=5;

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

(A)ch=’a+b’; (B)ch=’\0’; (C)ch=’7’+’9’; (D)ch=5+9;

4,若有以下定义int a,b;float x; 则不正确的语句是: A)a=1,b=2; B)b++; C)a=b=5; D)b=int x;

5,对以下说明语句的正确理解是:

int a[10]={6,7,8,9,10};

A)将五个初值依次赋给a[1]-a[5]; B)将五个初值依次赋给a[0]-a[4]; C)将五个初值依次赋给a[6]-a[10];

D)因为数组的长度与初值的个数不相同,所以此语句不正确。

6,下面程序段的运行结果是:

char c[]=”\t\r\n\\\0will\n”;

printf(”%d”,strlen(c));

A)4 B)3 C)5

D)字符串中有非法字符,输出值不确定.

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

A)if(a==b) B)if(!(a!=b))

C)if(!strcmp(a,b)) D)if(strcpy(a,b))\

8,以下正确的函数定义形式是:

A)double fun[int x,int y] B)double fun(int x;int y) C)double fun(int x,y);

D)double fun(int x,int y);\

9,下面函数调用语句含有实参的个数为: func((exp1,exp2),

(exp3,exp4,exp5));

A)1 B)2 C)4 D)5

10,以下有关宏替换的叙述不正确的是:

A)宏替换不占用运行时间 B)宏名无类型

C)宏替换只是字符替换 D)宏名必须用大写字母表示

11,若w=1,x=2,y=3,z=4,则条件表达式 w<x?w:y<z?y:z的值是:

A)4 B)3 C)2 D)1

12,为了避免在嵌套的条件语句IF-ELSE产生二义性, C语言规定:ELSE子句中总是与___配对使用.

A)缩排位置相同的IF B)其之前最近的IF C)其之后最近的IF D)同一行上的IF

13,以下程序的运行结果是:

main() {

int m=5; if(m++>5)

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

else printf("%d\n",m--); } A)4 B)5 C)6 D)7

14,语句WHILE(!E);中的表达式!E等价于:

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

15,下面程序段运行结果是:

int n=0;

while(n++<=2); printf("%d",n);

A)2 B)3 C)4

D)有语法错误

16,若有如下语句: int x=3; do

{printf("%d\n",x-=2);} while(!(--x)); 则上面程序段输出的结果是:

A)1

B)1和-2 C)3T0 D)死循环

17,执行语句for(i=1;i++<4;);后变量i的值是:

A)3 B)4 C)5 D)不定

18,若二维数组a有m列,则在a[i][j]前的元素个数为:

A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1

19,以下正确的定义语句是:

A)int a[1][4]={1,2,3,4,5}; B)float x[3][]=

{{1},{2},{3}}; C)double y[][3]={0}; D)long b[2][3]= {{1},{1,2},{1,2,3}};

20,判断字符串S1是否大于字符串S2,应当使用:

A)if(S1>S2)

B)if(strcmp(S1,S2)); C)if(strcmp(S2,S1)>0); D)if(strcmp(S1,S2)>0);

改错题

/*下面程序中函数fun的功能是:根据整型形参m,计算如 下公式的值:y=1+1/2!+1/3!+1/4!+…+1/m! 例如:若m=6,则应输出:1.718056。

请改正函数fun中的两处错误,使它能得出正确的结果。注 意:不要改动main函数,不得增行或删行,也不得更改程序 的结构!*/

#include \#include \double fun(int m) {

/******* found ****************/ int y=1,t=1; int i;

for(i=2;i<=m;i++) {

t=t*1/i;y+=t; }

/********* found **************/ return(0); }

/************* 注意:以下部分不得作任何修改 **********/ main() { int n; clrscr();

printf(\scanf(\

printf(\}

编程题

/* 函数fun的功能是:把a数组中的n个数的平方值与b数组中的 逆序的n个数的平方值一一对应相加;结果存在c数组中。 例如:当a数组中的值是:1,3,5,7,8 b数组中的值是:2,3,4,5,8

调用该函数后,c 存放的数据是:65,34,41,58,68 注意:部分源程序存在文件PRODEV.C中。请不要改动主函数main() 和其它函数中的任何内容。仅在函数fun的花括号中填入你编 写的若干语句。 */

#include #include

void fun(int a[], int b[], int c[], int n)

{ }

/******************* 以下部分不得做任何修改 ******************/ main() {

int i, a[100]={1,3,5,7,8}, b[100]={2,3,4,5,8}, c[100]; clrscr();

fun(a, b, c, 5);

printf(\

for (i=0; i<5; i++) printf(\ printf(\}

本文来源:https://www.bwwdw.com/article/lyvh.html

Top