当前位置:文档之家› 2015C(上)考题20151120——2016年3月复习题(含答案)

2015C(上)考题20151120——2016年3月复习题(含答案)


A. putchar(a, b); B. printf("%s, %s", a[], b[]); C. puts(a, b); D. puts(a); puts(b);
11、错误的转义字符是: C A) ’\\’ B) ’\’’ C) ’\81’ D) ’\0’
12、已知:int x,y,z,w;则为使以下语句的输出为:1234+123+12+1,正确的输入形式
} else if (m==n){ printf("%c\n",a[m-1]); } else if (len > n && n > m){ for (i = m - 1; i < n; i++) { printf("%c",a[i]); } printf("\n"); } return 0; }
二、编程题:
1、 求字符串字串 求一个字符串的字串,输入 m,n,求一个字符数组 m 和 n 之间的部分; (考虑 m 和 n 的几种特殊情况:若 m,n 均大于或等于字符串长度,则输出 NULL;若 m< 字符串长度,n>=字符串长度,输出的是 m 之后的字符串;若 m 与 n 相等,则输出第 m 个 字符;若字符串长度>n>m,则输出 m 和 n 之间的字符串) 输入: 字符串 m(整数) n(整数) 输出 字符串 测试用例 1 输入 abcdef[回车] 2[回车] 3[回车] 输出 bc[回车] #include <stdio.h> int main(int argc, const char * argv[]) { char a[1000]; int m,n,len,i; scanf("%s",a); getchar(); scanf("%d",&m); scanf("%d",&n); len = strlen(a); if (m >= len && n >= len) { printf("NULL\n"); } else if (m==0 || n==0){ printf("NULL\n"); } else if (m < len && n>=len){ for (i = m - 1; i < len; i++) { printf("%c",a[i]); } printf("\n");
printf("*"); } else if ( i == (n-1)/2 printf("*"); } else{ printf(" "); } } printf("\n"); } return 0; } && j-i <= n-1 && j > (n-1)/2) {
C 语言程序设计(上)期末复习题
一、单项选择题:
1、下列常数中不能作为 C 的常量的是 选择一项: A. 2.5e-2 B. 0xA5 C. 3e2 D. 0582 D
ቤተ መጻሕፍቲ ባይዱ
2、若定义了 int x; 则将 x 强制转化成双精度类型应该写成 选择一项: A. x (double) B. (x) double C. (double) x D. double(x)
C. 输出 ## D. 有语法错
8、下里说法中正确的是_____。 选择一项: C A. break 用在循环语句中,而 continue 用在 switch 语句中。 B. continue 能结束循环,而 break 只能结束本次循环。 C. break 能结束循环,而 continue 只能结束本次循环。 D. break 用在 switch 语句中,而 continue 用在循环语句中。 9、以下 while 循环执行的次数是_____。 k = 0; while (k = 10) k = k + 1; 选择一项: D A. 10 B. 11 C. 9 D. 无数次 10、若有 char a[80], b[80]; 则正确的是_____。 选择一项: D
2、 求素数 素数是指一个只能被 1 和它本身整除的数,在数论中占有重要的研究地位。输入 m 和 n (m<=n) ,请给出 m 和 n 之间所有的素数(从小到大排列) #include <stdio.h> int is_prime(int n){ // 0 不是素数 1 是素数 int k; if (n < 2) { return 0; } for (k = 2; k * k <= n; k++) { if (n % k==0) { return 0; } } return 1; } int main(int argc, const char * argv[]) { int m,n,i,flag; scanf("%d",&m); scanf("%d",&n); flag = 0; for (i = m; i <= n; i++) { if(is_prime(i)==1){ if (flag ==0) { printf("%d",i);
20、能正确表示:x 的值在-10 到-1 之间,或在 10 到 1 范围内时,值为“真”的表达式是:C A. ( x < -10 ) || ( x < 1 && x > -1 ) || ( x > 10 ) B. ! ( x >= -10 && x <= -1 || x <= 10 && x >= 1 ) C. ( x >= -10 ) && ( x <= -1 ) || ( x <= 10 ) && ( x >= 1 ) D. x <- 10 || x < 1 && x > -1 || x > 10
5、若 int a, b, c; 则为它们输入数据的正确输入语句是 选择一项: A A. scanf("%d%d%d", &a, &b, &c); B. read(a, b, c); C. scanf("%d%d%d", a, b, c); D. scanf("%D%D%D", &a, &b, &c); 6、if (!k) a = 3; 语句中的 !k 可以改写为______,使其功能不变。 选择一项: D A. !k == 0 B. k != !0 C. k != 0 D. !k != 0 7、下列程序段______。 x = 3; do { y = x--; if (!y) {printf("x"); continue;} printf("#"); } while (1 <= x <= 2); 选择一项: B A. 输出##x B. 是死循环
3ae ,则不正确的 C 语言表达式是: C bc
B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3
18、对字符数组 s 赋值,不合法的一个是:C A) char s[]=”Beijing”; B) char s[20]={”Beijing”}; C) char s[20];s=”Beijing”; D) char s[20]={’B’,’e’,’i’,’j’,’i’,’n’,’g’}; 19、已知 int a=4 ,b=5,c; 则执行表达式“c=(a>b? a-b: b-a);” 后,c 的值是 A A.1 B.0 C.5 D.4
flag++; } else{ printf(" %d",i); } } } printf("\n"); return 0; }
3、 打印图形, 输入 n,输出 A 字形,A 字的横线在中央 输入 3(中央在 2) * *** * * 输入 4(中央在 2) * *** * * * * #include <stdio.h> int main(){ int n,i,j; int m; scanf("%d",&n); if (n < 3) { printf("error\n"); return 0; } m = 2 * n; for (i = 0; i < n; i++) { for (j = 0; j < i + n;j++) { if (i+j == n-1) { printf("*"); } else if (j-i == n-1) {
应当为:C scanf ("%4d-%3d-%2d-%1d", &x, &y, &z, &w); printf("%4d+%3d+%2d+%1d\n", x, y, z, w); A) 1234123121 C) 1234-123-12-1 B) 1234 123 12 1 D) 1234+123+12+1
13、若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式 为:D A) a<>0 B) !a C) a=0 D) a
14、运算符有优先级,在 C 语言中关于运算符优先级的叙述中正确的是:B A) 逻辑运算符高于算术运算符,算术运算符高于关系运算符 B) 算术运算符高于关系运算符,关系运算符高于逻辑运算符 C) 算术运算符高于逻辑运算符,逻辑运算符高于关系运算符 D) 关系运算符高于逻辑运算符,逻辑运算符高于算术运算符 15、若有以下语句,则正确的描述是:B static char x[ ]="12345"; static char y[ ] ={ ’1’, ’2’, ’3’, ’4’, ’5’}; A) x 数组和 y 数组的长度相同 C) x 数组长度小于 y 数组长度 16、表达式 18/4*sqrt(4)/8 值的数据类型为:C A.int 17、若有代数式 A.a/b/c*e*3 B.float C.double D.不确定 B) x 数组长度大于 y 数组长度 D) x 数组等价于 y 数组
相关主题