C语言考试试题三套

C语言考试试题三套
C语言考试试题三套

C语言辅导试题一

一、单项选择题(每小题 2 分,共20 分)

1.C 语言程序的三种基本结构是顺序结构、选择结构和______结构。

A、循环

B、递归

C、转移

D、嵌套

2.若x是单精度实型变量,表达式(x = 10/4) 的值是_____ 。

A、2.5

B、2.0

C、3

D、 2

3. 表达式!x 等价于_____。

A、x==0

B、x==1

C、x != 0

D、x != 1

4.若变量已正确定义且k 的值是4,计算表达式( j = k--) 后,_____。

A、j=3, k=3

B、j=3, k=4

C、j=4, k=4

D、j=4, k=3

5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。

A、算术运算、赋值运算、关系运算

B、关系运算、赋值运算、算术运算

C、算术运算、关系运算、赋值运算

D、关系运算、算术运算、赋值运算

6.C语言中,形参的缺省的存储类说明是______。

A、auto

B、static

C、register

D、extern

7.下列语句定义pf为指向float类型变量f的指针,_____是正确的。

A、float f, *pf = f;

B、float f, *pf = &f;

C、float *pf = &f, f;

D、float f, pf = f;

8.表达式sizeof(“key”) 的值是______。

A、1

B、2

C、3

D、4

9.将程序prog.c编译后运行:prog –nla hello world 则*(*(argv+2)) 是______。

A、?p?

B、…-…

C、…h?

D、…w?

10.若a是整型变量,表达式~(a ^ ~a ) 等价于______。

A、~a

B、1

C、0

D、2

二、填空题(每小题 3 分,共24 分)

1.写出语句printf ("%d, %o, %x", 0x12, 12, 012); 的输出结果。

2.写出下列程序段的输出结果。

#define F(x) x - 2

#define D(x) x*F(x)

printf("%d,%d", D(3), D(D(3))) ;

3.写出下列程序段的输出结果。

int k ; char *s = “ABC”;

for( k=10; k != 0; k-- ) ;

printf ( "%d", k );

while( *s++ ) putchar( *s );

4.写出下列程序的输出结果。

void fun(int k)

{ static int a;

printf(”%d,”, a);

a += k;

}

main()

{ int k;

for (k=1; k<=3; k++)

fun(k);

}

5.写出下列程序的输出结果。

main( )

{ struct st {

int x, y;

} a[4]={{10,20},{30,40},{50,60},{70,80}};

struct st *p=a;

printf("%d,", p++->x);

printf("%d,", ++p->y);

printf("%d\n", (a+3)->x);

}

6.写出下列程序的输出结果。

#include "stdio.h"

void main()

{ int k, j, m, n, a[6][6], b[6];

m=3, n=2;

for(k=0; k

for(j=0; j

a[k][j] = k*n+j+1;

for(k=0; k

b[k] = 0;

for(j=0; j

b[k] += a[k][j];

}

for(k=0; k

printf("%d, ", b[k]);

}

7.写出下列程序的输出结果。

# include

long fib(int g)

{ switch(g){

case 0: return(0);

case 1:

case 2: return(2);

}

printf("g=%d,", g);

return ( fib(g-1) + fib(g-2) );

}

main()

{ long k;

k = fib(4);

printf("k=%ld\n", k);

}

8.用typedef定义一个长度为10的整型数组NUM。

三、程序阅读题(每题 5 分,共20 分)1.写出下列程序的输出结果。

#include

int x, y, z;

void p(int *x, int y)

{ --*x;

y++;

z = *x+y;

printf("%d,%d,", *x,y);

}

void main()

{ x=5; y=2; z=0;

p(&x, y);

printf("%d,%d,%d--", x, y, z);

p(&y, x);

printf("%d,%d,%d\n", x, y, z);

}

2.写出下列程序的输出结果,并指出该程序的功能。

#include

void main()

{ int x, k;

x =14;

for ( k = 0; x!=0; x &= x-1 )

++k;

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

}

3.写出下列程序的输出结果。

#include

void main()

{

int v[]={6,3,4,1,2}; int n=5;

int gap, j, k, temp;

for( gap = n/2; gap > 1; gap /= 2 )

for( j = gap; j < n; j++ )

for( k = j-gap; k >= 0 && v[k] > v[k+gap]; k -= gap ){

temp = v[k];

v[k] = v[k+gap];

v[k+gap] = temp;

}

for(k=0; k<5; k++) printf("%d, ", v[k]);

}

4.输入1 2 3 4 5 0后,写出下列程序的输出结果。

#define LEN sizeof(struct line)

#define NULL 0

struct line{

int num ;

struct line *next ;

}

main()

{ struct line *p1 , *p2 , *head ;

int j, k = 0;

p1 = p2 = head = (struct line *) malloc (LEN) ;

scanf("%d", &p1->num) ;

while (p1->num != 0){

p1 = (struct line *) malloc (LEN) ;

scanf("%d", &p1->num) ;

if ( p1->num == 0 ) p2->next = NULL ;

else{ p2->next = p1 ;

p2 = p1 ;

}

k++;

}

p2->next = head ; p1 = head->next ; p1 = p1->next ;

for ( j=1 ; j <= k ; j++){

printf("--> %d ", p1->num) ;

p1 = p1->next ;

}

}

四、程序填空题(每空 2 分,共20 分)

1.输入10个点的坐标(设坐标为整数值), 输出距原点最远的点(设唯一)的坐标及该点距原点的距离.

#include

void main()

{

struct{

int x, y;

float length;

} point[10];

int k, sub=0;

for(k = 0; k <10; k++){

scanf("%d%d", &point[k].x, &point[k].y);

point[k].length = (1)

}

for(k=1; k<10; k++)

if( (2) ) (3)

printf("(%d,%d) %f\n", point[sub].x, point[sub].y, point[sub].length);

}

2.将输入的n 个字符串连接成1个字符串, 然后输出该字符串.

#include

#include

void main()

{

char str[10][20], string[200];

int k, n;

scanf("%d", &n);

for (k=0; k

gets(str[k]);

(4)

for (k=1; k

(5)

puts(string);

}

3.函数xtoi 的功能是将放在字符串中的十六进制数(可以出现?0?~?9?、?a?~?f)转换成十进制整数。例如:调用xtoi("1f") 将返回31。

xtoi( (6) )

{ int k, d=0;

for(k=0; s[k] == ? ? || s[k] == ?\t?; k++);

while(s[k] >= ?0? && s[k] <= ?9? || s[k] >= ?a? && s[k] <= ?f? ){

if (s[k] >= '0' && s[k] <= '9')

(7)

if (s[k] >= 'a' && s[k] <= 'f')

(8)

k++;

}

return d;

}

4.函数month_day(year, yearday, &month, &day) 的功能是将给定的某年第几天转换为相应的月和日。例如:调用month_day(1988, 60, &m, &d) 后,m 的值是2, d 的值是29(即1988年的第60天是1988年2月29日)。判别闰年的条件:能被4整除但不能被100整除或能被400整除。

void month_day(int year, int yearday, int *pmonth, int *pday)

{ static int day_tab[2][13]={

{0,31,28,31,30,31,30,31,31,30,31,30,31},

{0,31,29,31,30,31,30,31,31,30,31,30,31}};

int k, leap;

leap = year % 4==0 && year % 100 != 0 || year % 400 == 0;

for(k=1; yearday > day_tab[leap][k]; k++)

(9)

*pmonth = (10)

*pday = yearday;

}

五、编程题( 共16 分)

1.[程序说明] (5分)

请编写函数sum_fact(number),返回number 的因子之和。(能整除number的数就是它的因子,number定义为int)

例如sum_fact(6) = 12 (因为1, 2, 3, 6是6的因子)

2.[程序说明] (11分)

文本文件input.txt 中存放了一批整数,将其中每个数的因子之和顺序写入文件output.txt。( 必须调用第1小题中定义的函数sum_fact(number) 计算number 的因子之和)

例:若文件input.txt 中存放了1, 2, 6 ,则每个数的因子之和分别是1 3 12 ,它们被写入文件output.txt。

C语言辅导试题二

一、单项选择题(每小题 2 分,共30 分)

1. C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。

A、…{… 和?}?

B、…[…和?]?

C、“/*”和”*/”

D、“*/”和”/*”

2.下列运算符中,优先级最低的是_____。

A、*

B、!=

C、+

D、=

3.若变量已正确定义,表达式(j=3, j++) 的值是_____ 。

A、3

B、4

C、5

D、0

4.已知字符…a? 的ASCII码为97 ,执行下列语句的输出是_____。

printf ("%d, %c", ?b?, ?b?+1 ) ;

A、98, b

B、语句不合法

C、98, 99

D、98, c

5.表达式strcmp(“box”, “boss”) 的值是一个_______。

A、正数

B、负数

C、0

D、不确定的数

6.数组定义为int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。

A、a[3][2]

B、a[2][1]

C、a[1][2]

D、a[2][3]

7.要调用数学函数时,在#include命令行中应包含_____。

A、”stdio.h”

B、”string.h”

C、”math.h”

D、”ctype.h”

8.判断i和j至少有一个值为非0的表达式是_____。

A、i!=0 && j!=0

B、i*j!=0 [yh1]

C、!(i==0 || j==0)

D、i&&j

9.若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。

A、scanf(”%d,%f”, &a, &c);

B、scanf(”d=%d, c=%f”, &a, &c);

C、scanf(”%d%f”, &a, &c);

D、scanf(”%d%f”, a, c);

10.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。

A、p++

B、x++

C、*(p++)

D、&x++

11.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _____是正确的。

A、p2=p1;

B、p2=**p1;

C、p2=&p1;

D、p2=*p1;

12.下列程序段的输出是_____。

int c[]={1, 3, 5};

int *k=c+1;

printf("%d", *++k);

A、3

B、5

C、4

D、6

13.不正确的赋值或赋初值的方式是______。

A、char str[]="string";

B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'};

C、char str[10];str="string";

D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', ?\0?};

14.对于以下结构定义,++p->str中的++加在_____。

struct {

int len;

char *str;

} *p;

A、指针str上

B、指针p上

C、str指的内容上

D、以上均不是

15.对于如下说明,语法和语义都正确的赋值是_____。

int c, *s, a[]={1, 3, 5};

A、c=*s;

B、s[0]=a[0];

C、s=&a[1];

D、c=a;

二、填空题(每小题 2 分,共20 分)

1.写出下列程序段的输出结果。

float x1, x2;

x1=3/2;

x2=x1/2;

printf("%d, %.1f", (int)x1, x2) ;

2.表达式(7<<1>>2^2 ) 的值是_______。

3.写出下列程序段的输出结果。

#define A 10

#define B (A

printf("%d", B*2);

4.写出判断字符变量c是英文字母的表达式。

5.写出下列程序段的输出结果。

int k, x;

for (k=0, x=0; k<=9&&x!=10; k++)

x+=2;

printf ("%d, %d", k, x) ;

6.写出下列程序段的输出结果。

printf(“%d, %d”, NULL, EOF);

7.对于以下递归函数f,调用f (3) 的返回值是_____。

f (int n)

{ return ((n>0) ? 2*f(n-1)+f(n-2) : -1); }

8.写出下列程序段的输出结果。

char str[]="hello\tworld\n";

printf("%d, %c\n", sizeof(str), *(str+10));

9.输入12345#后,写出下列程序的输出结果。

void main()

{ char c;

for(c=getchar(); getchar()!=?#?; c=getchar())

putchar(c);

}

10.执行程序find –nx ould text.txt时,*++argv[1]的值是_______。

三、程序阅读题(每题5分,共20分)

1.若输入3 1 2 3 <回车> , 则以下程序的输出结果是_______。

#include "stdio.h"

void main()

{ int i, j, n, a[10];

scanf("%d", &n);

for (i=0; i

scanf("%d",&a[i]);

for (i=0; i

for (j=0; j

printf("%d, ", a[(i+j)%n]);

}

2.若输入89 76 24 25 9 8 11 16 35 4 <回车> , 则以下程序的输出结果是_______。

#include "stdio.h"

#define N 10

main()

{

int x[N], y1[N], y2[N];

int i, j, n1, n2, t, p;

n1=n2=0;

for(i=0;i

scanf(“%d”, &x[i]);

if(x[i] % 2==0) y1[n1++]=x[i];

else y2[n2++]=x[i];

}

for(i=1; i

for(j=0; j

if(y1[j]>y1[j+1]){

t=y1[j]; y1[j]=y1[j+1]; y1[j+1]=t;

}

for(i=0; i

p=i;

for(j=i+1; j

if(y2[p]

if(p!=i){

t=y2[i]; y2[i]=y2[p]; y2[p]=t;

}

}

for(i=0; i

for(i=0; i

}

3.以下程序的输出结果是_______。

#include

int z;

void p(int *x, int y)

{ ++*x;

y--;

z=*x+y+z;

printf("%d, %d, %d#", *x, y, z);

}

void main()

{ int x=1, y=5, z=9;

p(&x, y);

printf("%d, %d, %d#", x, y, z);

}

4.若输入-6+15*3/5=<回车> , 则以下程序的输出结果是_______。

#include

void main()

{

int m=0, sum=0;

char c, oldc='+';

do {

c=getchar();

if(c<='9'&&c>='0') m=10*m+c - '0';

else {

if(oldc=='+') sum += m;

else sum -= m;

m=0;

oldc=c;

printf("%d, ", sum);

}

} while(c!='=');

}

四、程序填空题(每空 2 分,共20 分)

1.下列程序的功能是创建单向链表。

#include

#include

struct link {

char name[10];

int mark;

struct link * next;

};

void insert(char *, int);

struct link * head = NULL;

main()

{

char name[10];

int mark;

struct link * t;

while ( 1 ) {

scanf("%s %d", name, &mark);

if ( strcmp(name, "#") == 0 ) break;

______(1)_______;

}

for (t=head; ______(2)_______)

printf("<%s>: %d\n", t->name, t->mark);

}

void insert(char * name, int mark)

{

struct link * p;

p = ______(3)_______ ;

strcpy(p->name, name);

p->mark = mark;

______(4)_______;

if ( head != NULL ) ______(5)_______;

head = p;

}

2.prog.c是带命令行参数的程序。运行prog filename时,将文本文件filename中的内容原样输出;运行prog -u filename时,将文本文件filename中的所有字母以大写方式输出(其余字符原样输出);运行prog -d filename时,只将文本文件filename中的数字输出。

# include

# include

void main(int argc, char * argv[])

{

FILE *fp;

char * filename, ch;

int tag=0;

if (argc <2 || argc>3) { printf(“Argument error\n”); return; }

if (argc == 3) {

if (strcmp(argv[1], “-u”) == 0) tag=1;

else if (strcmp(argv[1], “-d”) == 0) tag=2;

else {printf(“Option error\n”); return;}

______(6)_______;

}

else filename = argv[1];

if (______(7)_______) {

printf(“Cannot open file\n”); return;

}

while (______(8)_______ ) {

ch = fgetc(fp);

if ( tag == 0 ) putchar(ch);

else if ( tag == 1 ) ______(9)_______;

else if ( ______(10)_______) putchar(ch);

}

fclose(fp);

}

五、编程题( 共10 分,混合班学生做第2题,其他学生做第1题)

1. 1.[程序说明] (10分)

输入m和n(m≥n≥0)后,计算下列表达式的值并输出。

m!

n!*(m-n)!

要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。

2. 2.[程序说明] (10分)

编写函数strcmp(char * s1, char * s2)。若s1和s2均是数字串(包括+/-号),则按照十进制整数大小进行比较;否则按照Ascii序进行比较。s1大于/等于/小于s2时,分别输出1/0/-1。可以直接调用atoi函数。

C语言辅导试题三

一、单项选择题(每题2分,共30分)

1.______是合法的用户自定义标识符。

A、b-b

B、float

C、

D、_isw

2.若变量已正确定义并赋值,表达式______不符合C语言语法。

A、a*b/c;

B、3.14%2

C、2, b

D、a/b/c

3._____是不正确的字符常量。

A、'\n'

B、'1'

C、"a"

D、'\101'

4.在C 程序中,用_____表示逻辑值“真”。

A、1

B、非0 的数

C、非1 的数

D、大于0 的数

5.______把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;

6.若变量已正确定义,表达式______的值不是2。

A、2&3

B、1<<1

C、a==2

D、1^3

7.若变量已正确定义,语句“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;

8.设变量定义为“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

9.下列程序的输出结果是_____。

fun(int a, int b, int c)

{ c =a*b; }

main( )

{ int c;

fun(2,3,c);

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

}

A、0

B、1

C、6

D、无法确定

10.在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。

A、int

B、double

C、void

D、char

11.表达式strlen(”hello”) 的值是_______。

A、4

B、5

C、6

D、7

12.设变量定义为“int a[4];”,则表达式______不符合C语言语法。

A、*a

B、a[0]

C、a

D、a++

13.设变量定义为“int x, *p=&x;”,则&*p相当于_____。

A、p

B、*p

C、x

D、*&x

14.若变量已正确定义,____不能使指针p成为空指针。

A、p=EOF

B、p=0

C、p=?\0?

D、p=NULL

15.对于以下的变量定义,表达式______不符合C语言语法。

struct node {

int len;

char *pk;

} x = {2, "right"}, *p = &x;

A、p->pk

B、*p.pk

C、*p->pk

D、*x.pk

二、填空题(每题2分,共20分)

1.表示“x≥y≥z”的C表达式是_______。

2.下列程序段的输出是______。

printf("%o\n", 010<<1^1);

3.下列程序段的输出是______。

int k;

float s;

for (k=0, s=0; k < 7; k ++)

s += k/2;

printf("%d, %f\n", k, s);

4.下列程序段的输出是_______。

#define f(a, b, x) a*x+b

printf("%d, %d\n", f(3,2,1), f(6, 5, f(3, 2, 1)));

5.下列程序段的输出是_____。

main()

{ int k;

for(k=1; k<5; k++) {

if(k % 2) printf("*");

else continue;

printf("#");

}

}

6.下列程序段的输出是_____。

# include

int f(int x)

{ static y=1;

y++;

x += y;

return x;

}

void main()

{ int k;

k=f(3);

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

}

7.下列程序段的输出是_____。

int *p, *q, k = 5 , j = 6 ;

q = &k ; p = q ; q = &j ;

printf("%d", *p);

8.函数

void f(char s[ ], char t[ ])

{ int k=0;

while (s[k]=t[k]) k++;

}

等价于

void f(char *s, char *t)

{ while (_____);

}

9.下列程序段的输出是_____。

char *a[2]={"one", "two"}, **p=a;

printf("%s,", *(p++)+1);

printf("%c\n", **p-1);

10.用typedef定义一个文件指针FP。

三、程序阅读题(每题4分,共16分)

1.输入elephant后,下列程序的输出结果是_______。

# include

void main()

{ int i=0, k, ch;

static int num[5];

char alpha[ ]={'a', 'e', 'i', 'o', 'u'}, in[80];

gets(in);

while(in[i]){

for(k=0; k<5; k++)

if(in[i] == alpha[k]) {

num[k]++;

break;

}

i++;

}

for(k=0; k<5; k++)

if(num[k]) printf("%c%d", alpha[k], num[k]);

printf("\n");

}

2.下列程序的输出结果是_______。

#include

void f(int n)

{ if(n<0) {

putchar('-');

n = -n;

}

if(n/10) f(n/10);

putchar(n%10+'0');

}

main()

{

f(-610);

}

3.输入0 10 2 7后,下列程序的输出结果是_______。

#include

void p(int v[])

{ int i, k, temp;

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

for(k=i-1; k>=0 && v[k]

temp=v[k];

v[k]=v[k+1];

v[k+1]=temp;

}

}

main()

{ int k, a[4];

for(k=0; k<4; k++)

scanf("%d", &a[k]);

p(a);

for(k=0; k<4; k++)

printf("%d ", a[k]);

}

4.下列程序编译后生成t.exe, 运行t input output zoo oil 的输出结果是_______。

void main(int argc, char * argv[ ])

{

int k;

char *p=argv[1];

for(k=2; k

if(strcmp(argv[k], p)>0) p=argv[k];

printf("%s\n", p);

}

四、程序填空题(每空2分,共20分)

1.验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。要求将6~100之间的偶数都表示成两个素数之和。素数指只能被1和自身整除的正整数,1不是素数,2是素数。

#include

int prime(int n) /* 判断n是否为素数*/

{ int k;

for (k=2; k<=n/2; k++)

if (n%k==0) return 0;

return (1) ;

}

main()

{ int i, k;

for (i=6 ; i<=100; i+=2)

for (k=2; k<=i/2; k++)

if ( (2) ) {

printf("%d = %d +%d\n", i, k, i-k);

break;

}

}

2.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:After swap 5, 3。

void main()

{

int a, b;

a = 3,

b = 5;

swap( (3) ) ;

printf("After swap %d, %d", a, b);

}

swap( (4) )

{ int t;

(5) ;

(6) ;

(7) ;

}

3.函数del将头指针为head的链表中所有的节点全部删除,并释放相应的内存空间。

struct node{

int k;

struct node *next;

};

struct node *del(struct node *head)

{ struct node *p, *q ;

p=head;

while( (8) ){

(9) ;

free(p);

(10) ;

}

return NULL;

}

五、编程题(第1题4分,第2题10分,共14分)

1. 1.对任意输入的x,用下式计算并打印出y 的值。

e x x>10

y= 0 x=10

3x+5 x<10

2. 2.input.txt 中的非空格字符。

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

2011年技能考试试卷C语言(真题)

第一部分【程序填空】 第一套: 题目:函数gcd()计算整型数组a中相邻两元素的最大公约数,最小公倍数,其中最大公约数存入数组b中,最小公倍数存入数组c中。 --------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。 --------------------------------------------------------- #include #include void gcd(int a[],int n,int b[],int c[]){ int i,x,y,z; /***********SPACE***********/ for(i=0;i<【?】;i++){ x=a[i]; y=a[i+1]; while(z=x%y){ x=y;y=z; } b[i]=y; /***********SPACE***********/ c[i]=a[i]*a[i+1]/【?】; } } int main(){ int a[5]={8,12,5,7,14}; int b[4],c[4]; int i; gcd(a,5,b,c); for(i=0;i<5;i++) printf("%d\t",a[i]); printf("\n"); for(i=0;i<4;i++) printf("%d\t",b[i]); printf("\n"); for(i=0;i<4;i++) printf("%d\t",c[i]); printf("\n"); getch(); return 0; }

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

C语言考试试题

试题 课程名称C语言程序设计适用时间 试卷类别 A 适用专业、年级、班 一、选择题(每小题2分, 2×25=50分) 1.下列叙述错误的是( )。 A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.以下叙述不正确的是( )。 A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.C语言中最简单的数据类型包括( )。 A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)字符型、实型、逻辑型 4.C语言中运算对象必须是整型的运算符是( )。 A)%= B)/ C)= D)<= 5.若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 6.下列运算符中优先级最高的是( )。 A) < B) + C) && D) ! = 7.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是( )。 A) int B) float C) double D) char 8.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( )。 A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值 9.设整型变量a,b的值均为8, printf("%d,%d",(a++,++b),b--);的输出是( )。 A)8,8 B)8,7 C)9,9 D)8,9 10.若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为( )。 A)10 20 B)10,20 C)1020 D)10:20 11.判断char型变量ch是否为大写字母的正确表达式是( )。 A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch) 12.有如下程序 main( ) { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是( )。 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 13.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main( ) { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf("NO%d:%f\n",n,ave);

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

C语言考试题及答案

一、单项选择题:(10分,每题2分) 1.char*p[10];该语句声明了一个:。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D)有10个元素的指针数组p,每个元素存放一个字符串 2.若intx;且有下面的程序片断,则输出结果为:。 for(x=3;x<6;x++) { printf((x%2)"##%d":"**%d\n",x); } A) ##3B)**3 C)**3D)##3**4 **4##4##4**5##5 ##5**5 3.在while(!x)语句中的!x与下面条件表达式等价的是:。 A)x!=0B)x==1 C)x!=1D)x==0 4.已知 structpoint { intx; inty; }; structrect { structpointpt1; structpointpt2; }; structrectrt; structrect*rp=&rt; 则下面哪一种引用是不正确的________。 A) r t.pt1.xB) (*rp).pt1.xC) rp->pt1.x D)rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为:。 A)*(a+j*n+i)B)*(a+i*n+j)C)*(*(a+i)+j)D)*(*a+i) +j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1.#include main()

{intn; staticchar*monthName[]= {"Illegalmonth","January","February", "March","April","May","June","July","August", "September","October","November","December"}; for(n=1;n<=12;n++) { printf("%s\n",monthName[n]); } } 运行结果是: January February March April May June July August September October November December 2.#include #defineARR_SIZE7 voidYH(inta[][ARR_SIZE],intn); voidPrintYH(inta[][ARR_SIZE],intn); main() {inta[ARR_SIZE][ARR_SIZE];

C语言考试试卷及答案

2011-2012学年第一学期 C语言程序设计A 课程A卷考试题 共 4 页此第 1 页成绩 一、单项选择题(每小题2分,共40分) 1. C语言中合法的字符常量是() A.n B.’\n’ C.110 D.”n” 2. 有以下程序: main( ) { char ch=’A’; printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1); } 程序运行后的输出结果是() A. ch(1)=65,ch(2)=A B. ch(1)=97,ch(2)=A C. ch(1)=65,ch(2)=B D. ch(1)=97,ch(2)=B 3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是() A. a==-b&&a%2==0 B. a!=b&&a+b==0&&a%2 C. !(a%2)&&a==-b D.a%2==0&&a+b==0 4. 以下程序段中语句” printf("i=%d,j=%d\n",i,j);”的执行次数是() int i, j; for(i=3;i ;i--) for(j=1;j<5;j++) printf("i=%d,j=%d\n",i,j); A. 12 B. 20 C. 15 D. 24 5. 执行以下程序段后,x[2]的值是() int x[10]={1,2,3,4,5,6,7,8,9,10},i,j,t; i=0;j=9; while(i

c语言试卷第四套

若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=i+32)后,x的值为:(D). A.52 B.16 C.4 D.36 整型变量x=1,y=3,经下列计算后,x的值不等于6的是(D)。 A.x=y*4/2 B.x=9-(--y)-(--y) C.x=(x=1+2,x*2) D.x=y<2?6:5 以下程序的输出结果为(A)。 main() {int i=010,j=10; printf("%d,%d\n",++i,j--); } A.9,10 B.10,9 C.010,9 D.11,10 如下说法不正确的是(D). A.若b为假a为真,则 a||b为真 B.若b为真a为假,则 a||b为真 C.若b为真a为真,则 b&&!a为假 D.若b为假,则!b+1为假 下列(C)表达式的值为真,其中a=5;b=8;c=10;d=0 A.(a*2-c)||d B.a*2>8+2 C.a-b=10) ; B.do{ i=1;s=1;s=s*i;i++;}while(i<=10) ; C.i=1;s=1;do {s=s*i; i++; }while(i<=10) ; D.i=1;s=1; do { s=s*i; i++;}while(i>=10) ; 以下正确的描述是(A). A.continue语句用来终止本次循环,继续下一次循环。 B.switch语句中不能出现continue语句 C.在循环中break语句不能独立出现 D.goto语句只能用于退出多层循环

精选C语言试卷(带答案).

2006-2007学年第二学期考试试卷A卷 考试科目C语言程序设计考试方式闭卷完成时限2小时 拟题人审核人批准人2007年7 月 5 日机械、电气、信息、生化、轻工、经管、理学院2006年级各理工科专业 说明: 1.应将全部答案写在答卷纸对应的题号处;否则作无效处理; 2.编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸; 3.考试完成后,必须将试卷与答卷同时交回。 一、判断题(10小题,每题1分,共10分;用√表示正确,用×表示错误)1.在循环体内使用break语句和continue语句的作用相同。 2.函数返回值的类型最终取决于函数定义时形参的类型。 3.else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。 4.从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。 5.1/2的结果是0,所以1.0/2的结果也是0。 6.a=b=c=5可以理解为a=(b=(c=5))。 7.假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。 8.for(;;)等价于while(1)语句。 9.假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。 10.char *sp ={"welcome"};可以写成char *sp="welcome"; 。 二、单选题(16小题,每题1分,共16分) 1.以下数组定义中错误的是: (A) int x[][3] ={0}; (B) int x[2][3]={{1,2},{3,4},{5,6}};

(C) int x[][3]={{1,2,3},{4,5,6}}; (D) int x[2][3]={1,2,3,4,5,6}; 2.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为: (A)EOF (B)NULL (C) 0 (D)非0值 3.有以下程序: main() {int y=10; while(y--) ; printf(“y=%d\n”,y); } 程序执行后的输出结果是: (A) y=0; (B)y=-1; (C) y=1 (D)while构成无限循环 4. 若有以下宏定义: #define N 2 #define Y(n) (N+1)*n 则执行语句int z; z=2*N+Y(5);后的值是 (A) 50 (B)34 (C)19 (D)无定值 5.以下叙述中错误的是: (A)c程序必须由一个或者一个以上的函数组成。 (B)函数调用可以作为一个独立的语句存在。 (C)若函数有返回值,必须通过return 语句返回。 (D)函数形参的值也可以传回给对应的实参。 6.设有如下定义的变量 union data { int i; char ch; float f; }b; 则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,float类型占4个字节): (A) 4 (B)5 (C) 6 (D)7 7.以下叙述中错误的是:

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

c语言期中考试试题及答案

中国民航大学2009-2010学年第二学期 《C 语言程序设计》期中考试试卷 课程编号:03402513 试卷类型: A 卷 考试形式:笔试 考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C 语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C 程序的执行是(【2】) 。 【2】 A) 从本程序的主函数开始,到本程序的主函数结束

B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的

C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关 8、下列四组(八进制或十六进制)常数中,正确的一组是(【8】)。【8】 A) 016 0xbf 18 B) 0abc 017 0xa C) 010 -0x11 0x16 D) 0A12 7FF -123 9、下列四组转义字符中,合法的一组是(【9】)。 【9】 A)‘\t’‘\\’‘\n’ B)‘\’‘\017’‘\x’

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言考试试题

1.若x为int型变量,则执行以下语句后,x的值为-60。 x=6; x+=x-=x*x; x=x-x*x=-30 x=x+x=-60 2.若有定义int a[2][3]; 则对a数组的第i行第j列元素地址的正确引用为a[i]+j。 3.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是*p=*&j。 4.以下叙述正确的是define和if都不能定义为用户标识符。 5. 以下程序的输出结果是2。 #define SQR(X) X*X main() { int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); a/=k+k*m+m/k+k*m+m printf("%d\n",a); } 6. 以下程序的输出结果是4。 main() {int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) for(j=i;j<=i;j++) t=t+b[i][j]; { t=t+b[i][j];} printf("%d\n",t); printf("%d\n",t); }_ 7. 编一个程序,打入星期号,输出该星期的英文名字。例如,输入"1"则输出"Monday",说明:星期日编号为0,要求用指针数组处理。 main() { char *name[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday", "Saturday"}; int n; printf("\nInput the number(0-6):"); scanf("%d", &n); if ((n< 7) && (n>=0)) printf("\nThe name is: %s",name[n]); else printf("\nInput error"); } 8. 局部变量是静态存储变量。错误 9. "文件包含"处理是指一个源文件可以将另一个源文件的内容全部包含进来。正确 10. 若有定义:int *p1,*p2;则p1+p2无实际意义。正确 11. 若在函数内定义形参数组a:int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。错误 12. 以下不能正确定义二维数组的选项是int a[2][]={{1,2},{3,4}};。 13. 以下程序的输出结果是6 15 15。 int d=1; fun(int p) { static int d=5; d+=p; printf("%d ",d); return(d); } main( ) { int a=3; printf("%d \n", fun(a+fun(d))); }

C语言程序设计试题第3套

C语言程序设计试题(第3套) 一、单项选择题(30分,每题2分) 1.下面关于C语言的说法,错误的是______。 A、一个C程序总是从执行main开始。 B、C程序可以用/<*……*>/ 对程序作注释。 C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。 D、在C程序中,数据定义的最后必须写上一个分号。 2.判断字符串s1是否大于字符串s2,应当使用。 A、if (s1>s2) B、if (strcmp(s1,s2)) C、if (strcmp(s2,s1)>0) D、if (strcmp(s1,s2)>0) 3. 下列表达式错误的是______。 A、4/7 B、4.0/7.0 C、(-4)%(-7) D、4.0%7.0 4. 以下能定义为用户标识符的是______。 A、scanf B、printf C、_3com_ D、int 5. 能正确表示a和b 同时为正或同时为负的逻辑表达式是______。 A、(a>=0‖b>=0)&&(a< 0‖b<0) B、(a>=0&&b>=0)&&(a< 0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 6. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1%c2 ; 则执行后,c3的值是______。 A、2.0 B、2 C、3.0 D、3 7.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。 A、scanf("%d%d%d",i,j,k); B、scanf("%d %d %d",&i,&j,&k); C、scanf("%d,%d,%d",&i,&j,&k); D、scanf("%d,%d,%d",i,j,k); 8. 以下程序输出结果是。 A、7 B、6 C、5 D、4 main()

(完整版)c语言期末考试题及其答案

选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套

C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c; printf("d=%d",d); } A d=70 B d=80 C d=140 D d=700 10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。 struct worker { int no; char name[20]; char sex; union { int day; int month; int year;}birth; } w; A 29 B 20 C 25 D 6 11.设有以下定义,值为5的枚举常量是()。 enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A tue B sat C fri D thu 12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。 A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd"; 13.设有以下程序段,则值为6的表达式是()。 struct st { int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0]; A p++->n B ++p->n C p->n++ D (*p).n++ 写出下列程序的运行结果(10分,每小题2分) 1.float average (float array[10]) { int i;

相关文档
最新文档